![](/img/trans.png)
[英]Is it possible to use DataMember to overwrite serialized property value
[英]Serializer ignores properties that use another serialized property
我正在使用默认的序列化程序在asp.net中的终结点上进行序列化并返回一些数据。
正在使用的应用程序正在更改属性名称之间进行转换(换句话说,一些现有的应用程序正在使用诸如... Vat之类的名称;而较新的应用程序正在使用... Tax之类的名称。因此,我暂时需要在响应中同时使用两个名称,直到这些更改完成。
返回类型为IList。
public class Product
{
...
public decimal PriceIncVat { get; set; }
public decimal PriceIncTax { get { return PriceIncVat; } }
public int TaxCode { get; set; }
...
}
但是,当我在提琴手中检查响应时,产品的json列表中仅存在PriceIncVat属性。
我想不出任何原因,以上这些都不起作用。 我在与PriceIncTax同时添加了TaxCode并将其返回,因此我知道端点的代码是最新的。
在新的客户项目的客户端,我们有:
public class ProductDto
{
...
public decimal PriceIncTax { get; set; }
public string TaxCode { get; set; }
...
}
这里很困惑。
串行器假定您将需要在一段时间后反序列化数据。 因此,默认情况下,仅考虑具有getter 和 setter的属性。
使用DataContractJsonSerializer
,可以使用SerializeReadOnlyTypes
属性(尽管名称颇具误导性)来打开只读属性的SerializeReadOnlyTypes
。
旁注:检出Json.NET序列化程序 ,它提供更多选项并更好地控制(反序列化)过程。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.