小编Fas*_*Raf的帖子

RestSharp Deserialize返回空属性,但xml.deserialize测试有效

编辑:当我问我尝试某事的问题时......我已经在请求上设置了XmlNamespace属性,这就是诀窍..

request.XmlNamespace = "http://musicbrainz.org/ns/mmd-2.0#";
Run Code Online (Sandbox Code Playgroud)

但我真的不明白为什么......

下一个问题是让RestSharp将xml属性识别为对象属性


在周末的大部分时间里,我一直在讨论这个问题,而我却没有让它发挥作用.

我正在尝试围绕RestFul webservice(MusicBrainz)编写一个包装器.我正在测试一个简单的例子:获取一位艺术家的详细信息并将其放入自定义的Artist对象中.

当我在RestClient上执行Execute时,它结束了,但我的对象属性为null.但是当我使用XmlDeserializer测试反序列化时,objectproperties被填充(但不是对应于属性的属性,但我稍后会解决这个问题) )

在响应的反序列化和将对象放在response.data之间会发生什么?很可能这是我正在制作的"新手"错误,因为这是我使用RestSharp的第一步.

帮助将不胜感激..

退回的xml:

<metadata>
   <artist type="Group" id="f1548c5b-329e-4036-921c-02213a04b525">
       <name>Uriah Heep</name>
           <sort-name>Uriah Heep</sort-name>
           <country>GB</country>
           <life-span>
               <begin>1970</begin>
           </life-span>
    </artist>
</metadata>
Run Code Online (Sandbox Code Playgroud)

我的课 :

public class Artist
{
    public int Id { get; set; }
    public string Type { get; set; }
    public string Name { get; set; }
    public string SortName { get; set; }
    public string Country { get; set; }

}
Run Code Online (Sandbox Code Playgroud)

在以下代码中输出属性已填充

var output = xml.Deserialize<Artist>(response);
Run Code Online (Sandbox Code Playgroud)

但是同样的响应在调用时不会填充属性

var response = client.Execute<T>(request); …
Run Code Online (Sandbox Code Playgroud)

c# xml xml-serialization restsharp

7
推荐指数
1
解决办法
2280
查看次数

标签 统计

c# ×1

restsharp ×1

xml ×1

xml-serialization ×1