[英]Serializing a class to xml using RestSharp.AddBody fails
我嘗試通過RestRequest.AddBody
向RestSharp-RestRequest
添加一個簡單的測試類。 我嘗試使用兩個交付的序列化器進行序列化,但是我無法使它們之一工作(JSON-Serializations在相同的設置下就可以正常工作...)
這是我做序列化的方法:
private void SerializationTest()
{
RestRequest request = new RestRequest();
request.XmlSerializer = new RestSharp.Serializers.DotNetXmlSerializer();
//request.XmlSerializer = new RestSharp.Serializers.XmlSerializer();
request.RequestFormat = DataFormat.Xml;
//request.RequestFormat = DataFormat.Json;
request.AddBody(new Dummy()); // uses JsonSerializer
label1.Text = request.Parameters[0].Value.ToString();
}
我正在使用的虛擬類是:
private class Dummy
{
public string A = "Some string";
public string B = "Some string";
}
使用RestSharp.Serializers.XmlSerializer()
我得到:“ <Dummy />
”(缺少兩個字符串)
使用RestSharp.Serializers.DotNetXmlSerializer()
我什么也沒得到,程序只是沒有解決序列化步驟。
使用JSON request.RequestFormat = DataFormat.Json;
,一切正常。
。
{
"A": "Some string",
"B": "Some string"
}
我如何獲得該類,以便正確地序列化為XML?
謝謝你的幫助!
這些是字段,而不是屬性。 底層的XmlSerializer僅查找公共屬性。 更新它,它應該可以工作:
class Dummy
{
public string A { get; set; };
public string B { get; set; };
public Dummy() {
A = "Some string";
B = "Some string";
}
}
JSON起作用的原因是因為它遵循JSON.NET的默認序列化器,該序列化器(顯然)支持字段。 我個人認為這是錯誤的設計決定。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.