【发布时间】:2017-01-14 15:22:16
【问题描述】:
我有几个类映射到下面的结构/层次结构。
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;}
}
当序列化 CustomModel 时,我得到一个如下所示的 Json 字符串
{
"Message ": "A message is set.",
"Code": 825,
"Info": "Some Info is set"
}
但是,在反序列化时,我收到一个 System.NullReferenceException 错误,因为 CustomData 的构造函数被调用时 customData 为空。
如何避免在 setter 之前执行“getter”?
【问题讨论】:
-
你是在使用Json.net反序列化json吗?
-
@BrandonMinnick - 是的,我正在使用 json.net
-
我建议也添加一个默认构造函数并设置一些默认数据。除此之外,您可以考虑编写一个客户转换器来处理参数化构造函数:stackoverflow.com/questions/8254503/…
-
这还能编译吗?您的类型层次结构不符合指定的 json。
-
嗨诺亚!让我知道我的回答是否有助于解决您的问题!如果是这样,让我们将其标记为已回答,以帮助可能有相同问题的未来开发者!