2009-09-01 2 views
1

내가 개체를 XML로 직렬화하려면 다음 코드를 사용하고를 직렬화DataContractSerializer 부분적으로 만 내 개체

 StringBuilder sb = new StringBuilder(); 
     DataContractSerializer dcr = new DataContractSerializer(query.Result.GetType()); 
     XmlWriterSettings xws = new XmlWriterSettings() 
     { 
      CloseOutput = true, 
      Encoding = Encoding.UTF8 
     }; 
     dcr.WriteObject(XmlWriter.Create(sb, xws), query.Result); 
     query.Result.ReportXml = sb.ToString(); 

그러나 나는 DataContractSerializer 내가 직렬화하려고 모든 객체에 대해 완전하고 유효한 XML을 반환받을 수 없습니다, 6143 문자가 반환됩니다. 여기

<d2p1:anyType i:type="EquipmentDO"> 
    <DataObjectState>Modified</DataObjectState> 
    <DataObjectType>Equipment</DataObjectType> 
    <OwningDataManagerType>Configuration</OwningDataManagerType> 
    <ConfigurationManagementID i:nil="true" /> 
    <ConfigurationManagerAction>Nothing</ConfigurationManagerAction> 
    <ConfigurationRequestUserID i:nil="true" /> 
    <Id>10</Id> 
    <Active>false</Active> 
    <EquipmentModel>11</EquipmentModel> 
    <LineClearanceLevelIds> 
    <_keys> 
     <d2p1:int>1</d2p1:int> 
     <d2p1:int>2</d2p1:int> 
     <d2p1:int>3</d2p1:int> 
     <d2p1:int>4</d2p1:int> 
    </_keys> 
    </LineClearanceLevelIds> 
    <Zone>5</Zone> 
</d2p1:anyType> 
<d2p1:anyType="" i:type="EquipmentDO"> 
    <DataObjectState>Modified</DataObjectState> 
    <D 

다른 문자의 번호로 결과 XML의 캡핑을 경험

사람 또는 사람이 내가 뭐하는 거지 지적 할 수, 반환되는 XML 문자열의 끝의 예입니다 여기서 뭐라구?

감사

나는 그것이 XmlWriter에 버퍼링 상상

답변

2

; 시도 :

using(XmlWriter xw = XmlWriter.Create(sb, xws)) { 
    dcr.WriteObject(xw, query.Result); 
} 
+0

그래, 정말 고마워, 마크. – mattdlong

관련 문제