2014-08-27 2 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) 
{ 
........ 

} 

Что мне нужно сделать, это заменить загрузки XML из FileSteam C: \ 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

Смежные вопросы