4

編集:質問の解決策は、ジョン・シーハンによる最初のコメントで見つけることができます!

プロジェクトのRESTクライアントとしてRestsharpを使用したいと思います。RESTサーバーはまだ実行されていないので、サーバーなしでクライアントをテストしたいと思います。私の主な焦点は、返されるXML応答の逆シリアル化です。適切なRestSharp.RestResponseなしでRestSharpを使用してXMLを逆シリアル化することは可能ですか?

私はこのようにそれを試しました:

public void testDeserialization()
{
    XmlDeserializer d = new XmlDeserializer();
    RestSharp.RestResponse response = new RestSharp.RestResponse();
    string XML = @"<Response><Item1>Some text</Item1><Item2>Another text</Item2><Item3>Even more text</Item3></Response>";
    response.Content = XML;

    d.RootElement = "Response";
    Response r = d.Deserialize<Response>(response);
}

public class Response
{
    public string Item1 { get; set; }
    public string Item2 { get; set; }
    public string Item3 { get; set; }
}

逆シリアル化により、すべてのフィールドがnullであるResponse-Classのオブジェクトが作成されます。特定のxmlがRestSharpによって逆シリアル化されるかどうか(およびその方法)をテストする方法はありますか?

編集:読みやすくするために-これは私が使用しているXMLです:

<Response>
    <Item1>Some text</Item1>
    <Item2>Another text</Item2>
    <Item3>Even more text</Item3>
</Response>
4

1 に答える 1

6

私はこれを正しく行っていることを願っています-しかし、この質問が解決されたことを明確にするために、私は解決策をコピーしています(ジョンシーハンによるコメントから):

RootElementを指定する必要はありません。これは、ルートがトップレベルにない場合のみです。それを試して、それが機能するかどうか私に知らせてください。プロジェクトのデシリアライザーをテストする方法は次のとおりです 。https ://github.com/restsharp/RestSharp/blob/master/RestSharp.Tests/XmlDeserializerTests.cs

(編集:正しいファイルへのリンクを更新)

于 2012-01-18T16:23:06.857 に答える