簡體   English   中英

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

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM