internal class Program
{
private static void Main(string[] args)
{
var sourceJson2 = "{\"bizType\":\"123\",\"data\":\"JzLw2uiQT4IzERg7hdGWFaPAilWJy7e4462Gd9VQ0Mbj0qZI3uDe6wWaSklECHjalCTEt/L1ZAyhf/fxocABc8PSlKIgD3WMGXM06mlnEe7XqG3MCbAyHVYJtdDKKbo9oWNnoRRzd/WOi7aiOq80AyDEYTH5in5Zc4FJO5M0JI8Dj96cG4QmRKdwG6nfBt9PrroR0mqCNacstP9GnTAZ6BpMPAAkfbmrGeLsE/kCYcBXK0EtNLSqBChKwwOUaETeWdmtCl9RDMWAvTCiOgKeWw==\",\"appKey\":\"1234567890123456\",\"Sign\":\"JzLw2uiQT4IzERg7hdGWFaPAilWJy7e4462Gd9VQ0Mbj0qZI3uDe6wWaSklECHjalCTEt/L1ZAyhf/fxocABc8PSlKIgD3WMGXM06mlnEe7XqG3MCbAyHVYJtdDKKbo9oWNnoRRzd/WOi7aiOq80AyDEYTH5in5Zc4FJO5M0JI8Dj96cG4QmRKdwG6nfBt9PrroR0mqCNacstP9GnTAZ6BpMPAAkfbmrGeLsE/kCYcBXK0EtNLSqBChKwwOUaETeWdmtCl9RDMWAvTCiOgKeWw==\",\"Amount\":null}";
var jsonModel = JsonConvert.DeserializeObject<PaidInfo>(sourceJson2);
Console.WriteLine(jsonModel.TradeNo);//deserialization again
Console.ReadKey();
}
}
public class PaidInfo
{
public string BizType { get; set; }
private PaidData _payData;
public PaidData PayData
{
get
{
if (_payData != null)
{
return this._payData;
}
else
{
var sourceJson = Aes.Decrypt(Data, AppKey);
return JsonConvert.DeserializeObject<PayData>(sourceJson);
}
}
set { this._payData = value; }
}
public string Data { get; set; }
public string AppKey { get; set; }
public string OrderNo
{
get => this.PayData.RequestNo;
set => this.PayData.RequestNo = value;
}
public string TradeNo
{
get { return this.PayData.ServerRequestNo; }
set { this.PayData.ServerRequestNo = value; }
}
}
public class PaidData
{
public string RequestNo { get; set; }
public string ServerRequestNo { get; set; }
public string MerchantNo { get; set; }
public string Code { get; set; }
public string Amount { get; set; }
public string Fee { get; set; }
public string BizCode { get; set; }
public string BizMsg { get; set; }
public string Status { get; set; }
}
Когда я получаю доступ к линии
Console.WriteLine(jsonModel.TradeNo);
или
Console.WriteLine(jsonModel.OrderNo);
, которые снова десериализуются, это влияет на производительность. Почему переменная jsonModel
не сохраняет значения после первой десериализации?