ale*_*dev 5 c# xml-serialization
我试图序列化一个对象,并将\ 0(空)字符附加到生成的字符串.为什么?
我的代码:
XmlSerializer serializer = new XmlSerializer(typeof(Common.PlanogramSearchOptions));
MemoryStream memStream = new MemoryStream();
serializer.Serialize(memStream, searchOptions);
string xml = Encoding.UTF8.GetString(memStream.GetBuffer()); // appends \0
Run Code Online (Sandbox Code Playgroud)
我的工作是用空字符串替换Null字符
xml.Replace("\0", string.Empty)
Run Code Online (Sandbox Code Playgroud)
谢谢.
dtb*_*dtb 11
MemoryStream.GetBuffer()返回的基本缓冲器的MemoryStream(它小于存储在它的实际数据大).你想要MemoryStream.ToArray().
但是,我建议您使用StringWriter而不是MemoryStream,这样就可以避免UTF-8转换:
XmlSerializer serializer = new XmlSerializer(typeof(PlanogramSearchOptions));
StringWriter writer = new StringWriter();
serializer.Serialize(writer, searchOptions);
string xml = writer.ToString();
Run Code Online (Sandbox Code Playgroud)
另请参阅:将对象序列化为字符串
归档时间: |
|
查看次数: |
4277 次 |
最近记录: |