У меня есть некоторые проблемы с встроенной десериализацией RestSharp.Deserialization RestSharp не работает, C# Сериализация
Мой код:
RestClient client = new RestClient("https://example.com/rest/");
client.ClearHandlers();
client.AddHandler("application/xml", new RestSharp.Deserializers.XmlDeserializer());
var request = new RestRequest();
request.Resource = "member/findScoutIdsForOrganization/{organizationId}";
request.AddUrlSegment("organizationId", orgId);
var response = client.Execute<wsScoutIdList>(request);
var scoutids = response.Data;
XmlSerializer serializer = new XmlSerializer(typeof(wsScoutIdList));
var result = serializer.Deserialize(XmlReader.Create(new StringReader(response.Content)));
wsScoutIdList.java: (генерируется xsd2code ++)
[System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.6.81.0")]
[System.SerializableAttribute()]
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
[System.Xml.Serialization.XmlRootAttribute("ScoutIdList", Namespace="", IsNullable=false)]
public partial class wsScoutIdList
{
private List<string> _list;
public wsScoutIdList()
{
this._list = new List<string>();
}
[System.Xml.Serialization.XmlElementAttribute("list", Form=System.Xml.Schema.XmlSchemaForm.Unqualified, IsNullable=true)]
public List<string> list
{
get
{
return this._list;
}
set
{
this._list = value;
}
}
}
XML:
<?xml version ="1.0" encoding="UTF-8" standalone="yes" ?>
<ScoutIdList>
<list>id1</list>
<list>id2</list>
<list>id3</list>
</ScoutIdList>
System.XML.Serialization работает, но RestSharp Безразлично» т. Список просто пуст.
Я также пробовал json, но не работал.
'reque st.RequestFormat = DataFormat.Xml; 'не работает, он использует json, тогда ' request.AddUrlSegment («organizationId», orgId); 'это рекомендуемый способ, нет ничего плохого в этом. Дополнительный 'XmlSerializer' только для того, чтобы показать, что он работает. Подход RestSharper уже присутствует и не работает. – filnko