C# Xml序列化是否附加\0(反斜杠0或Null)字符?
我正在尝试序列化一个对象,并且\0(Null)字符被追加到生成的字符串中。为什么? 我的代码:C# Xml序列化是否附加\0(反斜杠0或Null)字符?,c#,xml-serialization,C#,Xml Serialization,我正在尝试序列化一个对象,并且\0(Null)字符被追加到生成的字符串中。为什么? 我的代码: XmlSerializer serializer = new XmlSerializer(typeof(Common.PlanogramSearchOptions)); MemoryStream memStream = new MemoryStream(); serializer.Serialize(memStream, searchOptions); string xml = Encodi
XmlSerializer serializer = new XmlSerializer(typeof(Common.PlanogramSearchOptions));
MemoryStream memStream = new MemoryStream();
serializer.Serialize(memStream, searchOptions);
string xml = Encoding.UTF8.GetString(memStream.GetBuffer()); // appends \0
我的解决方法是用空字符串替换空字符
xml.Replace("\0", string.Empty)
谢谢。返回的基础缓冲区(大于存储在其中的实际数据)。你想要的
但是,我建议您使用a而不是,这样可以避免UTF-8转换:
XmlSerializer serializer = new XmlSerializer(typeof(PlanogramSearchOptions));
StringWriter writer = new StringWriter();
serializer.Serialize(writer, searchOptions);
string xml = writer.ToString();
另请参见:非常好!这很有效,谢谢你的建议。。。我将全面实施这一点。谢谢,谢谢。当我打算在不同的上下文中排列时,我正在使用MemoryStream.GetBuffer。终于找到了我的路。:)