使用 restsharp 反序列化 - 我尝试了文档,但它没有用
Deserialization using restsharp - I tried the documentation but it did not work
我正在尝试使用 restsharp 将其反序列化为 c# 对象
在标记为重复问题之前请注意,我已经查看了以下堆栈溢出问题,但没有奏效
- How to XmlDeserialize using RestSharp?
- RestSharp XML Deserialization into List
回复:
<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);
我正在尝试使用 restsharp 将其反序列化为 c# 对象
在标记为重复问题之前请注意,我已经查看了以下堆栈溢出问题,但没有奏效
- How to XmlDeserialize using RestSharp?
- RestSharp XML Deserialization into List
回复:
<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);