簡體   English   中英

使用RestSharp.AddBody將類序列化為xml失敗

[英]Serializing a class to xml using RestSharp.AddBody fails

我嘗試通過RestRequest.AddBodyRestSharp-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";
}
  1. 使用RestSharp.Serializers.XmlSerializer()我得到:“ <Dummy /> ”(缺少兩個字符串)

  2. 使用RestSharp.Serializers.DotNetXmlSerializer()我什么也沒得到,程序只是沒有解決序列化步驟。

  3. 使用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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM