EDITED
是否可以反序列化作为Shape属性的c#对象?
我有一个Touch对象,它继承自一个圆形对象,该对象继承自作为Shape属性的障碍对象。
我将Touch对象序列化为json,如下所示:
Touch touch = new Touch(0.15, 0, 4.05);
touch.Shape.Stroke = Brushes.Black;
string json = JsonConvert.SerializeObject(touch);
我想使用他的json反序列化这个对象,如下所示:
Touch test = JsonConvert.DeserializeObject<Touch>(json);
但是我接受了这行代码的访问冲突。
我认为它来自我的障碍对象中的Shape属性,它的声明如下:
protected Shape shape;
[JsonProperty(PropertyName = "Shape")]
public Shape Shape
{
get { return shape; }
set { this.shape = value; }
}
有没有办法解决这个问题?
答案 0 :(得分:0)
我找到了一种方法来进行序列化。
我刚刚使用[JsonIgnore]
从Json序列化中删除了我的Shape,并使用方法创建它。我只需要两行而不是一行来通过序列化来创建我的对象:
Touch test = JsonConverter.Deserialize<Touch>(json);
test.CreateShape();
感谢您的帮助=)