У меня есть XML-ответ от моего клиента. Я не могу десериализовать XML как строку, он выдает Illegal characters in path
ошибке Illegal characters in path
. Итак, теперь я сохраняю файл в папке temp и извлекаю его. Можно ли выполнить десериализацию, не сохраняя сначала файл 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);
}
Вместо StreamReader
используйте StringReader
, который принимает string
как параметр конструктора.
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();
}