Недопустимые символы в пути ошибки в XML Deserilation

1

У меня есть 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);
            } 
Теги:

1 ответ

5
Лучший ответ

Вместо 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();
} 
  • 0
    Спасибо, Патрик Хофман. можно получить XML как строку из объекта? см мой обновленный вопрос
  • 0
    @Sagotharan: смотрите обновление.
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню