使用C#getter属性重复反序列化
或使用C#getter属性重复反序列化,c#,json,getter-setter,C#,Json,Getter Setter,或 如果两者都再次反序列化,则性能会受到影响。为什么变量jsonModel在第一次反序列化后不保留值?您必须在getter中分配。\u payData Console.WriteLine(jsonModel.OrderNo); 公共付费数据付费数据 { 收到 { 如果(_payData==null) { var sourceJson=Aes.Decrypt(数据,AppKey); 这是._payData=JsonConvert.DeserializeObject(sourceJson);//您
如果两者都再次反序列化,则性能会受到影响。为什么变量
jsonModel
在第一次反序列化后不保留值?您必须在getter中分配。\u payData
Console.WriteLine(jsonModel.OrderNo);
公共付费数据付费数据
{
收到
{
如果(_payData==null)
{
var sourceJson=Aes.Decrypt(数据,AppKey);
这是._payData=JsonConvert.DeserializeObject(sourceJson);//您是否考虑过将赋值给此。_payData
在的else
中?因为您没有指示代码将反序列化结果存储在_payData
中?@XIAN为什么您希望在将值赋值给它之前_payData会有一个值?旁注:如果您的类属性的名称与您在JSON中的名称相同,那么'如果要反序列化(或序列化为),则不需要使用JsonProperty属性。您确定是指getter吗?
Console.WriteLine(jsonModel.TradeNo);
Console.WriteLine(jsonModel.OrderNo);
public PayData PayData
{
get
{
if (_payData == null)
{
var sourceJson = Aes.Decrypt(Data, AppKey);
this._payData = JsonConvert.DeserializeObject<PayData> (sourceJson);//<---store it
}
return this._payData;
}
set { this._payData = value; }
}