将文本编写器分配给内存编写器

Riz*_*hid 3 c# asp.net asp.net-mvc c#-3.0 c#-4.0

我正在写一个xml文件但是缺少特定字段的某些值.我检查当对象到来时包含特定值存在的值,但写入后xml该值不存在.

这是我使用的代码,我认为XmlTextWriter可能是错误的原因xml.

还有另一种方法可以用于它,TextWriter但它无法转换为内存流.

string xmlString = null;
MemoryStream memoryStream = new MemoryStream();
XmlSerializer xs = new XmlSerializer(typeof(T));
// XmlTextWriter xmlTextWriter = new XmlTextWriter(memoryStream, Encoding.ASCII);
TextWriter xmlTextWriter=new StreamWriter(memoryStream,Encoding.ASCII);
xs.Serialize(xmlTextWriter, obj);
memoryStream =(MemoryStream)xmlTextWriter.    
//(MemoryStream)xmlTextWriter.BaseStream;
xmlString = ASCIIByteArrayToString(memoryStream.ToArray()); 
return `xmlString;`
Run Code Online (Sandbox Code Playgroud)

知道我怎么知道问题发生的原因和地点.

Des*_*tar 7

我认为你的内存流过于复杂.如果要获取XML字符串,可以序列化为StringWriter(派生自TextWriter),然后调用ToString().

XmlSerializer xs = new XmlSerializer(typeof(T));
StringWriter sw = new StringWriter();
xs.Serialize(sw, obj);
return sw.ToString();
Run Code Online (Sandbox Code Playgroud)