使用 restsharp 反序列化 - 我尝试了文档,但它没有用

Deserialization using restsharp - I tried the documentation but it did not work

我正在尝试使用 restsharp 将其反序列化为 c# 对象

在标记为重复问题之前请注意,我已经查看了以下堆栈溢出问题,但没有奏效

回复:

<response>
    <TAG>
         <tagid>1</tagid>
         <mac>00:12:8E:12:2F:34</mac>
    </TAG>
    <TAG>
         <tagid>2</tagid>
         <mac>00:11:8E:12:3F:11</mac>
    </TAG>
</response>

我的 Class 我希望使用但它只是声明计数 =0...

public class Response
{
    public Response()
    {
        this.Tag = new List<Tag>();
    }
    [XmlElement()]
    public List<Tag> Tag { get; set; } 
}

public class Tag
{
    public string Tagid { get; set; }
    public string Mac { get; set; }
}

尝试反序列化的代码

var request = new RestRequest
              {
                  Resource = "api/notimportant",
                  RequestFormat = DataFormat.Xml,
                  Method = Method.GET,
              };
request.AddParameter("fields", "all");

var client = new RestClient
             {
                 BaseUrl = new Uri(_url),
             }; 
client.AddHandler("application/xml", new DotNetXmlDeserializer());

var response = client.Execute<Response>(request);

我的多次测试

如果我使用响应,我什么也得不到,但是当我使用标签时,我只得到第一个元素而不是我想要的列表...

它似乎部分区分大小写。全部大写的 <TAG> 元素被抛弃了。当我将 类 更改为这个时,我终于让它工作了:

public class Response
{
    public Response()
    {
        this.Tags = new List<TAG>();
    }
    public List<TAG> Tags { get; set; }
}

public class TAG
{
    public string Tagid { get; set; }
    public string Mac { get; set; }
}

没有真正的休息 API 调用,这是我测试它的方法:

var d = new XmlDeserializer();
var response = new RestSharp.RestResponse();
response.Content = @"<response>
<TAG>
     <tagid>1</tagid>
     <mac>00:12:8E:12:2F:34</mac>
</TAG>
<TAG>
     <tagid>2</tagid>
     <mac>00:11:8E:12:3F:11</mac>
</TAG>
</response>";
var result = d.Deserialize<Response>(response);