[英]SecurityException when serializing with DataContractSerializer
[英]Missing the end of the XML when serializing with DataContractSerializer
我有以下方法用于将各种对象序列化为XML。 然后我将XML写入文件。 所有对象都具有适当的[DataContract]
和[DataMember]
属性。
public static string Serialize<T>(T item)
{
var builder = new StringBuilder();
var serializer = new DataContractSerializer(typeof(T));
using (var xmlWriter = XmlWriter.Create(builder))
{
serializer.WriteObject(xmlWriter, item);
return builder.ToString();
}
}
序列化工作正常,但是,我错过了内容的结尾。 即,字符串不包含完整的XML文档:结尾被截断。 有时,字符串会在标记的中间结束。
似乎没有混合长度会导致问题:我有18k的字符串是不完整的,我有80k的字符串也是不完整的。
XML结构非常简单,只有大约6-8个节点。
我错过了什么吗?
在调用ToString()
,不会刷新xmlWriter
; 尝试:
using (var xmlWriter = XmlWriter.Create(builder))
{
serializer.WriteObject(xmlWriter, item);
}
return builder.ToString();
这在xmlWriter
上的Dispose()
ToString()
之后执行ToString()
,这意味着它会将任何缓冲的数据刷新到输出(在本例中为builder
)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.