【发布时间】:2016-08-03 21:09:14
【问题描述】:
假设我有一个这样的类的实例,我想将其序列化为 JSON:
public class MyClass
{
public MyClass() { }
private List<string> texts;
public List<string> Texts
{
get
{
return new List<string> { "You got me!" };
}
set
{
texts = value;
Console.WriteLine("Setting property!");
}
}
}
我想确保在反序列化期间调用“Texts”的 set 访问器,即确保 MyClass 中的私有属性“texts”被设置。但是,如果我运行一个小测试用例:
public void TestMyClass()
{
var myClass = new MyClass();
var jsonBefore = JsonConvert.SerializeObject(myClass);
var jsonAfter = JsonConvert.DeserializeObject<MyClass>(jsonBefore);
}
set 方法永远不会被调用,即反序列化后私有“文本”为空。如何确保在反序列化期间调用公共“文本”中的 set 访问器?
【问题讨论】:
标签: c# json serialization