当我序列化然后反序列化这样的仅吸气剂自动属性时:
class A {
public string B { get; }
private A() { }
public A(int unusableConstructor) { B = "Val"; }
}
然后,Json.NET将在属性B中添加“ null”,从而成功反序列化类A的实例。
但是我不想要那个!
跟踪中确实包含消息Unable to deserialize value to non-writable property 'B' on A.
,但它处于Info
级别,并且Error
事件不会触发。
是否有一种方法可以说服Json.NET在这种情况下产生错误或以其他方式通知我(除了尝试从跟踪中解析信息消息之外)?
答案 0 :(得分:0)
您可以将JsonSerializerSettings
传递给您的DeserializeObject<T>
方法。
文档here。
示例:
var settings = new JsonSerializerSettings
{
MissingMemberHandling = MissingMemberHandling.Error
};
var myContent = JsonConvert.DeserializeObject<MyClass>(someString, settings);