2014-10-28 97 views
0

我已经从我的客户端获得XML响应。我不能将字符串反序列化为XML,它会抛出Illegal characters in path错误。所以现在我将文件保存在临时文件夹中并检索该文件。是否可以在不保存XML文件的情况下进行反序列化?XML错误中的路径错误中的非法字符

string xml = Post(); 

XmlSerializer deserializer = new XmlSerializer(typeof(Envelope)); 
TextReader reader = new StreamReader(xml); <-- Illegal characters in path error --> 
object obj = deserializer.Deserialize(reader); 
Envelope XmlData = (Envelope)obj; 
reader.Close(); 

编辑1 -

XmlSerializer serializer = new XmlSerializer(typeof(Envelope)); 
      using (TextWriter writer = new StreamWriter(xml)) <-- StringWriter is Possible here? --> 
      { 
       serializer.Serialize(writer, XmlData); 
      } 

回答

4

取而代之的是StreamReader,使用StringReader,即需要一个string as constructor parameter

TextReader reader = new StringReader(xml); 

对于写作,使用此:

string output; 
XmlSerializer serializer = new XmlSerializer(typeof(Envelope)); 
using (TextWriter writer = new StreamWriter(xml)) <-- StringWriter is Possible here? --> 
{ 
    serializer.Serialize(writer, XmlData); 

    output = writer.ToString(); 
} 
+0

感谢@patrick福满,.有可能从对象获取xml作为字符串?看到我更新的问题 – Sagotharan 2014-10-28 11:40:48

+0

@Sagotharan:查看更新。 – 2014-10-28 12:13:18

+0

谢谢#patrick hofman。 – Sagotharan 2014-10-28 12:27:27