我試圖序列化包含其他成員之間的字典的自定義類型。與字典的鍵和值相關的類型是實現的接口。序列化期間出現StackOverFlowException
字典看起來像
Dictionary<ITypeA, ITypeA>
TypeA implements ITypeA,
SubTypeOfA inherits from TypeA
SubTypeOfB inherits from SubTypeOfA
僞代碼看起來是這樣的:
List<Type> knownTypes = new List<Type>() {
typeof(TypeA),
typeof(SubTypeOfA),
typeof(SubTypeOfB)
};
DataContractSerializer serializer =
new DataContractSerializer(typeof(DataHolder), knownTypes);
using (FileStream fs = new FileStream(completeFilePath, FileMode.Create))
{
serializer.WriteObject(fs, templateData);
success = true;
}
我得到一個時writeObject()可以獲取調用StackOverflowException,我是什麼原因造成這樣的事情發生無能。
層次結構中的所有類都使用[DataContract]裝飾,要序列化的成員使用[DataMember]進行處理。
任何幫助,將不勝感激。
你第一次得到這個異常的時候叫什麼? – 2011-02-11 13:33:20
什麼是DataHolder?什麼是`templateData`?除了遺傳以外,其他類型包括什麼? – 2011-02-11 13:36:31