[英]Is it possible to deserialize a Shape in C# using Json.NET
已编辑
是否可以反序列化作为形状作为属性的ac#对象?
我有一个Touch对象,它继承自Circle对象,Circle对象继承自Obstacle对象,后者是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);
但是我在这行代码中遇到访问冲突。
我认为它来自我的Obstacle对象中的Shape属性,它的声明如下:
protected Shape shape;
[JsonProperty(PropertyName = "Shape")]
public Shape Shape
{
get { return shape; }
set { this.shape = value; }
}
有办法解决这个问题吗?
我找到了进行序列化的方法。 我只是使用[JsonIgnore]
从Json序列化中删除了Shape,并使用一种方法创建了它。 我只需要两行而不是一行即可通过序列化创建我的对象:
Touch test = JsonConverter.Deserialize<Touch>(json);
test.CreateShape();
谢谢您的帮助=)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.