RestSharp中的自定义序列化/反序列化108

3
在从RestSharp 106更���到108时,我无法找到以下代码的优雅替代方案。我已经查看了迁移文档,但没有找到合适的解决方法。很有可能我错过了一些显而易见的东西。
现有的代码在v106中有效,涵盖了XML和JSON�� 类A
using RestSharp.Deserializers;


[DeserializeAs(Name = "response")]
public class ACertainResponse
{
    public string SomeProp {get; set;}
    //Etc
}

//JSON Payload {"response" : {"SomeProp" : "Some Value"}}

类 B

using RestSharp.Serializers;

[SerializeAs(Name = "request")]
public class SomeRequest
{
    public string SomeProp {get; set;}
    //Etc
}

//Resulting in : 
//{"request" : { "SomeProp" : "A Value" } }

我找到了[JsonPropertyName("customName")],但是正如名称所示,它仅适用于属性。

1
我不确定应用于类时 SerializeAsDeserializeAs 具体作用是什么,因为我似乎找不到相关文档,但通常仅使用 JsonPropertyName(或者对于 Json.NET 来说是 JsonProperty)已经足够了。当序列化 SomeRequest 时,它的结果应该是什么样子?被反序列化为 ACertainResponse 的 JSON 又会是什么样子? - Jesse
1个回答

0

虽然我无法找到一个适用于所有情况的解决方案,但我成功地通过显式设置XML或JSON序列化的属性来使其工作。这些属性涵盖了序列化和反序列化:

JSON

using System.Text.Json.Serialization;

[JsonSerializable(typeof(LeadspediaRequest), TypeInfoPropertyName = "response")]
public class ACertainResponse
{
    public string SomeProp {get; set;}
    //Etc
}

XML

using System.Xml.Serialization;

[XmlRoot(ElementName = "response")]
[XmlType("response")]
public class SomeRequest
{
    public string SomeProp {get; set;}
    //Etc
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接