假设我在C#中有以下课程。
class MyClass
{
[JsonIgnore]
public Foo Foo { get; set; }
[JsonProperty("bar")]
private Bar Bar
{
get
{
return new Bar()
{
Foo = this.Foo,
}
}
set
{
this.Foo = value.Foo;
}
}
}
现在假设我创建以下实例:
var instance = new MyClass()
{
Foo = new Foo(){//init properties of Foo};
}
这将正确序列化为json,但不会反序列化。 Bar.set()似乎从未被调用。知道为什么吗?我一直在浏览Newtonsoft文档以寻找线索,但是还没有发现有用的东西。
答案 0 :(得分:0)
根据评论,我提出了以下似乎可行的解决方案。
class MyClass
{
private Bar _bar = new Bar();
[JsonIgnore]
public Foo Foo
{
get { return Bar.Foo; }
set { Bar.Foo = value; }
}
[JsonProperty("bar")]
private Bar Bar
{
get
{
// there's some validation logic that goes here
return _bar;
}
set
{
_bar = value;
}
}
}