json 反序列化 GET,在 Set 之前调用



我有几个类映射到下面的结构/层次结构。

public class CustomModel
{
     public string Message { get; set; }
     public int Code { get; set; }
     public CustomData Info { get; set; } 
}
public class CustomData 
{
    public CustomData (CustomObject customData)
    {
        CustomObjectProp = customData.customMessage
    }
}
public class CustomObject 
{
    public string CustomObjectProp {get; set;}
}

序列化自定义模型时,我得到一个如下所示的 Json 字符串

{
  "Message ": "A message is set.",
  "Code": 825,
  "Info": "Some Info is set"
}

但是,在反序列化时,我收到一个System.NullReferenceException错误,因为调用CustomData的构造函数时自定义数据为空。

如何避免"getter"在二传手之前执行?

若要避免空引用异常,请在构造函数中执行空检查。

public class CustomData 
{    
    public CustomData (CustomObject customData)
    {
        if(customData != null)
            CustomObjectProp = customData.customMessage
    }
}

如果您使用的是 C#6,则可以利用空调节器运算符以内联方式执行空检查。

public class CustomData 
{
    public CustomData (CustomObject customData)
    {
        CustomObjectProp = customData?.customMessage
    }
}

相关内容

  • 没有找到相关文章

最新更新