3

RestSharpを使用してサードパーティのRESTWebサービスを利用しようとしていますが、デフォルトのXML逆シリアル化を取得して戻ってきたXMLで機能させるのに問題があります。

XMLの形式は-

<root>
   <someURL href="192.168.1.1" />
   <anotherURL href="192.168.1.2" />
   <thirdURL href="192.168.1.3" />
</root>

私のrequest.RootElementは"root"に設定されており、もともとRestSharpが-に逆シリアル化するために次のオブジェクトを作成しようとしました。

public class URLInfo
{
    public string someURL { get; set; }
    public string anotherURL { get; set; }
    public string thirdURL { get; set; }
}

属性が原因でこれが機能しないことに気付いたので、ここの例( https://github.com/restsharp/RestSharp/wiki/Deserialization )に基づいて考えました-これは要素のリストについて説明していますが、作成してみました以下 -

public class URLInfo
{
    public HrefAttribute someURL { get; set; }
    public HrefAttribute anotherURL { get; set; }
    public HrefAttribute thirdURL { get; set; }
}

public class HrefAttribute
{
    public string href { get; set; }
}

しかし、私の応答オブジェクトデータはまだnullです。ここで私が間違っていることを誰かが指摘できますか、または属性が含まれているときにデフォルトのXmlDeserializerを使用することさえできませんか?-リストではありますが、独自の例で属性について説明しているため、これは奇妙に思えます。

ありがとう。

4

1 に答える 1

0

わかりました、それを壊すルートを設定していたようです!

への呼び出しを削除したとき

request.RootElement = "root";

ドキュメントを問題なく逆シリアル化しました。うーん...正しいルートのように見えるので、なぜこれが修正されたのか知りたいですか?

于 2012-06-08T14:01:35.590 に答える