ASP.net Web API:序列化时更改类名称
本文关键字:序列化 net Web API ASP | 更新日期: 2023-09-27 17:59:12
我有一个产品的数据传输对象类
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是DataContractSerializer。DataContractSerializer是通过应用于序列化类的DataContractAttribute和应用于序列化的类成员的DataMemberAttribute配置的。
一个选项是使用默认值。此的Net序列化属性:
[DataContract(Name = "Product")]
public class ProductDTO
{
[DataMember(Name = "ProductId")]
public Guid Id { get; set; }
[DataMember]
public string Name { get; set; }
// Other properties
}