2014-10-28 117 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