使用RestSharp反序列化XML时如何忽略对象的属性

时间:2018-09-20 07:15:29

标签: c# rest restsharp xml-deserialization

可以说我有一个只有三个属性的对象:

using RestSharp.Deserializers;
using System;

[DeserializeAs(Name = "item")]
public class MyClass
    {
        public int Id { get; set; }
        public string Name { get; set; }
        [DeserializeAs(Name = "id")]
        public int IdFromAPI { get; set; }
    }

和类似的XML:

<List>
    <timestamp>2018-09-20T10:18:14.070</timestamp>
    <contents>
        <item>
            <id>1</id>
            <name>object1</name>
        </item>
        <item>
            <id>2</id>
            <name>object2</name>
        </item>
    </contents>
    <count>2</count>
</List>

我使用RestRequest(Method.GET)获取数据,然后使用

反序列化它们
RestClient client = new RestClient("SomeURI");
RestRequest request = new RestRequest("someResource", Method.GET);
request.AddHeader(...)
...
List<MyClass> myClassList = client.Execute<List<MyClass>>(request)?.Data;

我需要从XML到

  • id 元素映射到属性 IdFromAPI (有效)
  • name 元素映射到属性 Name (有效)
  • 属性 Id 被忽略并保留其默认0值

一切正常,但Id和IdFromAPI获得相同的值(来自id元素)。

我如何忽略财产ID?

[NonSerialized]仅对字段声明有效,对属性无效。 我在RestSharp库中找不到任何[XmlIgnore],并且[System.Xml.Serialization.XmlIgnore]无法与RestSharp反序列化一起使用。 (作为最后的选择,我可以使用其他解串器)

信息:我在.NET Framework 4和RestSharp 105.2.3版本上

0 个答案:

没有答案