0
這可能聽起來像來自其他主題的重複問題,但它在接口定義中推遲。序列化具有另一個接口列表定義的接口實例
我有一個接口,可以說叫IClass1,在其定義中包含的接口列表,說IClass2
我有一個業務單位來實現這個接口;實施自然會是這樣
class Class1: IClass1
{
....whatever properties
List<IClass2> DataItems { get; set; }
}
class Class2:IClass2
{
...whatever properties
}
的問題是,XmlSerializer
會抱怨在Class1的列表中,因爲它是一個接口! 所以我的問題是:簡單地說,我總是知道在DataItems列表中應該反序列化的實例的類型是什麼,它將是Class2類型,如何告訴我的XML序列化程序?
我已經看到了很多解決方法,使用虛擬屬性並在序列化/反序列化過程中忽略接口列表是最合適的一個,我認爲,而且我當然不想發明我的自己的序列化程序或重新實現序列化我的類
哎唷! .net 4.5 我需要使用.net framework 4:/ – simsim
@simsim沒關係,它也適用於.Net 3.0,3.5和4.0。點擊幫助頁面上的「其他版本」下拉菜單。 –
是的,我想添加一個引用,System.Runtime.Serialization。 任何方式,這也不會工作,正如我在示例代碼中看到的,我的界面必須知道將繼承它的類:) 在我的情況下,接口是在一個分離的項目;實現與定義分離 – simsim