2014-08-27 63 views
1

我已經開始使用Xsd2Code,並且直接從實際文件反序列化XML。 我現在需要做的是從本地變量中反序列化xml。檢索XML數據和XmlSerializer

這是一段代碼片段。

using (FileStream getResponseDataFromFile = new FileStream (@:\Temp\Output\DeclarationResponse.xml", FileMode.Open)) 
{ 
      XmlSerializer serializeGbResponseXML = new XmlSerializer(typeof(declarationGbResponse));    
      declarationGbResponse myResponse = (declarationGbResponse)serializeGbResponseXML.Deserialize(getResponseDataFromFile); 
foreach (var acceptanceResponseItem in myResponse.acceptanceResponse) 
{ 
........ 

} 

我需要做的是取代從FileSteamç加載XML:\ TEMP ......,而是從一個局部變量分析它,然後從該變量反序列化。然後我可以使用由Xsd2Code創建的類並顯示並使用各種屬性。

回答

1

只要「payloadXML」是一個格式良好的xml字符串,這將對您有用。

public myType DeserializeEstimatePayload(string payloadXML) 
    { 
     myType est = null; 
     XmlSerializer xmlSerializer = new XmlSerializer(typeof(myType)); 
     MemoryStream memStream = new MemoryStream(Encoding.Unicode.GetBytes(payloadXML)); 
     est = (myType)xmlSerializer.Deserialize(memStream); 
     xmlSerializer = null; memStream = null; 

     return est; 
    } 
+0

我不得不將編碼更改爲UTF8,但它像夢一樣工作! – Ross 2014-08-28 09:43:38