3

我正在尝试使用 RestSharp 来使用第三方 REST Web 服务,但在让默认 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; }
}

但我的响应对象数据仍然为空。谁能指出我在这里做错了什么,或者在涉及属性时甚至不能使用默认的 XmlDeserializer?- 这似乎很奇怪,因为他们自己的示例谈论属性,尽管在列表中。

谢谢。

4

1 回答 1

0

好的,看来它正在设置破坏它的根!

当我删除对

request.RootElement = "root";

它继续反序列化文档没问题。嗯......仍然有兴趣知道为什么这会修复它,因为它似乎是正确的根?

于 2012-06-08T14:01:35.590 回答