1
我有一个构造方法的对象,其将所有属性为默认值,包括一些引用类型值:Json.net解串器忽略非空引用类型属性
class MySettings
{
public int Test1 { get; set; } // works well
public MyClass Test2 { get; set; } // stays at the default value
public MySettings()
{
this.Test1 = 123;
this.Test2 = new MyClass(1);
}
}
当我尝试反序列化对象,引用类型属性(Test2
)保持在构造函数中设置的值,但值类型属性(Test1
)很好地反序列化。
_jsonSerializationSettings =
new JsonSerializerSettings
{
Formatting = Formatting.Indented,
};
var result = JsonConvert.DeserializeObject<MySettings>(jsonString, _jsonSerializationSettings);
如果我评论在构造Test2
属性的设置,它反序列化也很好。
我在做什么错?
谢谢! Json.net已经尝试重用创建的MyClass对象,但它的所有属性都是只读的,并且必须在构造函数中设置。 – Paboka