我目前无法从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结构,任何想法?
亲切的问候 扁栓
答案 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; }
}