是否可以使用Json.NET在C#中反序列化Shape

时间:2016-01-21 09:36:49

标签: c# json json.net shape

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; }
        }

有没有办法解决这个问题?

1 个答案:

答案 0 :(得分:0)

我找到了一种方法来进行序列化。 我刚刚使用[JsonIgnore]从Json序列化中删除了我的Shape,并使用方法创建它。我只需要两行而不是一行来通过序列化来创建我的对象:

Touch test = JsonConverter.Deserialize<Touch>(json);
test.CreateShape();

感谢您的帮助=)