Как XmlDeserialize с помощью RestSharp?

У меня возникли проблемы с десериализацией следующего XML с помощью restsharp

<Xid>
   <Id>118</Id>
   <Active>true</Active>
   <Xid>20</Xid>
   <CreatedDate>2011-09-16T18:15:32</CreatedDate>
   <CreatedUserId>1782</CreatedUserId>
   <ModifiedDate>2011-09-16T18:15:32</ModifiedDate>
   <ModifiedUserId>1782</ModifiedUserId>
   <TableName>ProjectRate</TableName>
   <ObjectId>644</ObjectId>
   <SystemGuid>157f2e2d-5e8b-41c7-b932-09c1d75d0ccc</SystemGuid>
</Xid>

Я не могу использовать класс с именем «Xid» с членом с именем «Xid», так как существует конфликт в C#. Я попытался вручную объявить XmlRoot для объекта XidClass, но, похоже, десериализатор RestSharp не улавливает его. Есть ли способ сделать это с помощью RestSharp, или мне нужно будет написать специальный десериализатор для этого конкретного фрагмента xml?


person Maixy    schedule 14.10.2011    source источник


Ответы (1)


Вам нужно создать класс вручную, прежде чем вы сможете десериализовать XML:

public class Xid
{
    public int Id { get; set; }
    public bool Active { get; set; }
    public int Xid { get; set; }
    ...
}

Вы должны иметь возможность десериализовать, используя что-то вроде:

Xid xid = xml.Deserialize<Xid>(response);

(Посмотрите здесь: Тестирование десериализации RestSharp без надлежащего REST -Апи)

person DIF    schedule 24.02.2012