Как игнорировать свойства объекта при десериализации XML с помощью RestSharp - PullRequest
0 голосов
/ 20 сентября 2018

Допустим, у меня есть объект только с тремя свойствами:

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 в

  • map id элемент в свойство IdFromAPI (работает)
  • map name element to property Name (работает)
  • property Id игнорируется и сохраняет значение по умолчанию 0 *

Все работает нормально, но Id и IdFromAPI получают одно и то же значение (из элемента id).

Как я могу игнорировать свойство Id?

[NonSerialized] действительно только для объявлений полей, но не для свойств.Я не могу найти [XmlIgnore] в библиотеке RestSharp, а [System.Xml.Serialization.XmlIgnore] не работает с десериализацией RestSharp.(В крайнем случае я могу использовать другой десериализатор)

Информация: я нахожусь на .NET Framework 4 и версии RestSharp 105.2.3

...