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