XmlNodeReader возвращает {None} - PullRequest
       5

XmlNodeReader возвращает {None}

2 голосов
/ 28 февраля 2011

В настоящее время у меня возникают проблемы с десериализацией 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}", когда я перехожу в отладку, requestDoc определенно имеет ожидаемую структуру XML, есть идеи?

С уважением Gib

1 Ответ

2 голосов
/ 28 февраля 2011

«Нет», вероятно, просто означает, что он еще не начал повторяться и находится в 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; }
}
...