2

現在、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 構造を持っています。

よろしくギブ

4

1 に答える 1

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; }
}
于 2011-02-28T11:53:22.530 に答える