XmlNodeReader возвращает {None}
В настоящее время у меня возникли проблемы с десериализацией XmlDocument из вызова веб-службы, вот мой код : -
public void getTest(XmlDocument requestDoc)
{
XmlDocument results = new XmlDocument();
XmlSerializer serial = new XmlSerializer(typeof(DataRequest));
DataRequest req;
XmlNodeReader reader = new XmlNodeReader(requestDoc.DocumentElement);
req = (DataRequest)serial.Deserialize(reader);
response.write(req.toString());
}
Теперь проблема, с которой я сталкиваюсь, заключается в том, что XmlNodeReader просто содержит "{None}", когда я перехожу в debug, requestDoc определенно имеет ожидаемую структуру XML, какие-либо идеи?
С уважением
Гиб
1 ответ:
"none", вероятно, просто означает, что он еще не начал итерацию и находится в BOF (за неимением лучшего термина). Это все равно должно сработать. Обычно, если это не так, это означает, что пространства имен неверны-дважды проверьте наличие
xmlnsв исходном коде.Это прекрасно работает, например:
public class Test { static void Main() { var doc = new XmlDocument(); doc.LoadXml(@"<Test foo=""bar""></Test>"); var ser = new XmlSerializer(typeof(Test)); using (var reader = new XmlNodeReader(doc.DocumentElement)) { var test = (Test)ser.Deserialize(reader); Console.WriteLine(test.Foo); } } [XmlAttribute("foo")] public string Foo { get; set; } }
Comments