XmlNodeReader返回{None}

时间:2011-02-28 11:38:03

标签: c# xmldocument xml-deserialization

我目前无法从Web服务调用反序列化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结构,任何想法?

亲切的问候 扁栓

1 个答案:

答案 0 :(得分:2)

“无”可能只是意味着它还没有开始迭代,而且是在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; }
}