有谁知道是否可以使用 2 个不同的 Contract Serializers 来拥有 2 个不同的端点?特别是 SOAP/XML 的默认 DataContractSerializer 和 REST/JSON 的 Json.NET 序列化程序
目的(由于兼容性问题)是在下面具有相同的DTO 类Person,序列化为以下JSON和XML格式
DTO 类:
public class Person
{
public string Name { get; set; }
public string Surname { get; set; }
}
JSON
{Psn:{"Nm":"name1","Snm":"surname1"}}
XML
<Person><Name>name1</Name><Surname>surname1</Surname></Person>
可以看出,JSON 的响应应该包含缩小的属性名称,但 XML 版本的完整属性名称。
我的想法是同时拥有序列化注释,DataContractSerialiser 理解的那些和 Json.Net 序列化器理解的那些,即这样的东西:
[DataMember]
[JsonObject(Title="Psn")]
public class Person
{
[DataMember]
[JsonProperty(PropertyName="Nm")]
public string Name { get; set; }
[DataMember]
[JsonProperty(PropertyName="Snm")]
public string Surname { get; set; }
}
我将不胜感激有关如何实现这一目标的任何想法。