我已經創建了幾個映射到Schema.org對象的類;使用Json.Net中的不同JsonProperty序列化類型信息
public class Thing {
public virtual string FullSchemaType { get { return "[schema.org]Thing"; } }
}
public class CreativeWork : Thing {
public override string FullSchemaType {get {return string.Join(":", base.FullSchemaType, "CreativeWork"); } }
[JsonProperty("author")]
public string Author { get;set; }
// etc
}
public class MediaObject : CreativeWork {
public override string FullSchemaType {get {return string.Join(":", base.FullSchemaType, "MediaObject"); } }
[JsonProperty("duration")]
public float? Duration { get;set; }
}
我有一個工廠類,創建例如一個MediaObject,設置它的屬性。 FullSchemaType屬性是符合Schema.org標準的注意其類型的方式。我將這些對象放到數據庫中,使用Json.NET 6.0.3對它們進行序列化。
我想將它們反序列化爲正確的C#對象。標準的Json.Net方法是使用TypeNameHandling
- 但是在序列化的Json中插入了一個$ type屬性,這並不理想,因爲我們有幾個不同的應用程序連接到這個數據庫。
有沒有辦法告訴Json.NET查看我的FullSchemaType屬性的類型綁定信息?
我需要的類型信息 - 我只是不希望它被稱爲$類型。 FullSchemaType已被序列化,所以我想能夠使用該屬性。 – rikkit 2014-10-31 14:04:06
那麼,爲什麼不從這個答案實現你自己的JsonCreationConverter類呢? http://stackoverflow.com/questions/8030538/how-to-implement-custom-jsonconverter-in-json-net-to-deserialize-a-list-of-base?rq=1 – ZuoLi 2014-10-31 14:08:11