我已经创建了几个映射到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