使用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; }
}