[英]ASP.net Web API: change class name when serializing
我有一个产品的数据传输对象类
public class ProductDTO
{
public Guid Id { get; set; }
public string Name { get; set; }
// Other properties
}
当Asp.net在JSON(使用JSON.NET
)或XML
序列化对象时,它会生成ProductDTO
对象。
但是,我想使用某种属性在序列化期间更改名称,从ProductDTO
更改为Product
:
[Name("Product")]
public class ProductDTO
{
[Name("ProductId")]
public Guid Id { get; set; }
public string Name { get; set; }
// Other properties
}
我怎样才能做到这一点?
我不明白为什么类名应该成为JSON序列化数据,但是对于XML,您应该能够通过DataContractAttribute控制类型名称,特别是通过Name属性:
using System.Runtime.Serialization;
[DataContract(Name = "Product")]
public class ProductDTO
{
[DataMember(Name="ProductId")]
public Guid Id { get; set; }
[DataMember]
public string Name { get; set; }
// Other properties
}
DataContractAttribute是相关的,因为ASP.NET Web API的默认XML序列化程序是DataContractSerializer 。 DataContractSerializer通过应用于序列化类的DataContractAttribute和应用于序列化类成员的DataMemberAttribute进行配置。
一个选项是使用默认的.Net Serialization属性 :
[DataContract(Name = "Product")]
public class ProductDTO
{
[DataMember(Name = "ProductId")]
public Guid Id { get; set; }
[DataMember]
public string Name { get; set; }
// Other properties
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.