4
我有以下幾點:使用JSON.NET,我該如何序列化這些繼承的成員?
public class MyClass : SuperClass {
[JsonProperty]
public virtual string Id { get; set; }
}
public abstract class SuperClass {
public int GetHashCode() {
//do things here
}
}
我不能改變SuperClass
。當我去序列化到JSON使用JsonNet我會做這樣的事情:
JsonSerializerSettings serializer = new JsonSerializerSettings {
//serializer settings
};
var jsonNetResult = new JsonNetResult {
Data = myClass,
SerializerSettings = serializer
};
return jsonNetResult;
顯然它不會序列GetHashCode()
。如果我去:
var jsonNetResult = new JsonNetResult {
Data = myClass.GetHashCode(),
SerializerSettings = serializer
};
它將正確序列化的價值,是有一些串行設置,我可以用它來告訴它包括GetHashCode()
?
編輯:我要補充一點,我現在正在創建一個屬性只有get做到這一點,即
[JsonProperty]
public virtual int GetHashCodeJson { get { return GetHashCode(); }
那麼圍繞它的一個方法是有一個沒有get和沒有設置的屬性,引用方法,它工作正常。有沒有比這更好的處理方法?然後你得到複雜的屬性,如GetHashCodeJson {get {return GetHashCode(); }} – 2010-10-13 21:21:08
我同意這個名字不太好。在你的情況下,如果你想這樣做,它可能只是HashCode而不是GetHashCodeJson,但問題依然存在,你需要一個與方法不同的屬性名稱。 – 2010-10-14 03:14:44