У меня есть такой класс:
[XmlRoot"MyMessageType")]
public class MyMessageType : BaseMessageType
{
[XmlElement("MessageId")]
//Property for MessageId
...
<snip>
//end properties.
}
Этот класс содержит статический метод для создания экземпляра XmlDocument для передачи на сервер BizTalk. Вот так:
public static XmlDocument GetMyMessageType(string input1, string input2 ...)
GetMyMessageType
создает экземпляр MyMessageType, затем вызывает следующий код:
XmlSerializer outSer = new XmlSerializer(instance.GetType());
using (MemoryStream mem = new MemoryStream())
using (XmlWriter _xWrite = XmlWriter.Create(mem))
{
outSer.Serialize(_xWrite, instance);
XmlDocument outDoc = new XmlDocument();
outDoc.Load(XmlReader.Create(mem));
return outDoc;
}
Когда я пытаюсь запустить этот код, я получаю XmlException
«Корневой элемент отсутствует». Когда я изменяю код для вывода в тестовый файл, я получаю правильно оформленный документ Xml. Может кто-нибудь сказать мне, почему я мог бы выводить в файл, но не как XmlDocument?