【问题标题】:Testing the Deserialization of RestSharp without proper REST-Api在没有适当 REST-Api 的情况下测试 RestSharp 的反序列化
【发布时间】:2012-01-17 15:04:50
【问题描述】:

编辑:问题的解决方案可以在 John Sheehan 的第一条评论中找到!

我想使用Restsharp 作为我项目的 Rest-Client。由于 REST 服务器尚未运行,我想在没有服务器的情况下测试客户端。我主要关注返回的 XML-Response 的反序列化。是否可以在没有适当 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; }
}

反序列化创建响应类的对象,其中每个字段都为空。有没有办法测试任何给定的 xml 是否(以及如何)被 RestSharp 反序列化?

编辑:为了更好的可读性 - 这是我正在使用的 XML:

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

【问题讨论】:

  • 您不必指定 RootElement。这仅适用于根不在顶层时。试试看,让我知道它是否有效。以下是我们为项目测试反序列化器的方法:github.com/restsharp/RestSharp/blob/master/RestSharp.Tests/…
  • 谢谢。这解决了问题! (但我无法将问题标记为已解决,因为解决方案在评论中...... :)

标签: c# xml deserialization restsharp


【解决方案1】:

我希望我做对了 - 但为了明确这个问题已经解决,我正在复制解决方案(来自 John Sheehan 的 cmets):

您不必指定 RootElement。那只是为了当 root 不在顶层。试试看,让我知道它是否有效。 以下是我们如何测试项目的反序列化器: https://github.com/restsharp/RestSharp/blob/master/RestSharp.Tests/XmlDeserializerTests.cs

(编辑:更新了正确文件的链接)

【讨论】:

  • 很高兴它成功了。我不是 100% 确定,所以我把它作为评论。很高兴你得到它的代表:)
  • 再次感谢您的帮助。我不是故意要从你那里偷走你来之不易的代表——对不起!
猜你喜欢
  • 1970-01-01
  • 2021-01-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-06-27
  • 1970-01-01
  • 2022-01-20
  • 1970-01-01
相关资源
最近更新 更多