C# DataContractSerializer仅部分序列化我的对象
我使用以下代码将对象序列化为XMLC# DataContractSerializer仅部分序列化我的对象,c#,wcf,serialization,C#,Wcf,Serialization,我使用以下代码将对象序列化为XML StringBuilder sb = new StringBuilder(); DataContractSerializer dcr = new DataContractSerializer(query.Result.GetType()); XmlWriterSettings xws = new XmlWriterSettings() { CloseOutput = tru
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个字符
下面是返回的XML字符串结尾的示例
<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
被改进的
装备
配置
没有什么
10
假的
11
1.
2.
3.
4.
5.
被改进的
我想象它被缓冲在XmlWriter
中;尝试:
using(XmlWriter xw = XmlWriter.Create(sb, xws)) {
dcr.WriteObject(xw, query.Result);
}