2014-09-01 39 views
2

當我嘗試將C#中的對象序列化爲XML時,出現問題。 我想通了出口該類時出錯:序列化C#中的通用類

[XmlInclude(typeof(CountryData))] 
[XmlInclude(typeof(ManufacturerData))] 
[XmlInclude(typeof(ProgramData))] 

[Serializable()] 
public class DeliveryTimeList<T> where T : IDeliveryTimeData 
{ 
    private DataTable _data; 
    public DataTable Data 
    { 
     get { return _data; } 
     set { _data = value; } 
    } 

    public DeliveryTimeList() 
    { 
     _data = new DataTable();   
    } 

    public void Add(T data) 
    { 
     //  Not in Use 
     //_data.Rows.Add(data.ItemArray()); 
    } 
} 

類是通用的,因爲下一步就是要改變在創建類的數據表,它包含一個列表。 類CountryData,Manufacturer和ProgramData實現接口IDeliveryTimeData。

我得到下面的描述中System.InvalidOperationException: BEIM Generieren DES XML-Dokuments IST EIN Fehler aufgetreten(< - 德語) 這大致翻譯器有一代的XML文檔的過程中是一個錯誤。 我不知道它爲什麼不是序列化,但我期望這個問題與該類是通用的有關。

有沒有人知道我做錯了什麼?

+0

你設置你的界面IDeliveryTimeData爲可序列化呢? – gimpycpu 2014-09-01 08:51:49

+0

這是不可能的,因爲它看起來:錯誤屬性'可序列化'在此聲明類型無效。它只對'class,struct,enum,delegate'聲明有效。 – Bongo 2014-09-01 08:54:43

+0

嗯,這代碼編譯,你也應該這麼做,如果你這樣做正確 A級:IDeliveryTimeData {} 接口IDeliveryTimeData:ISerializable的 {} 阿 – gimpycpu 2014-09-01 08:57:51

回答

1

你不能直接序列化的DataTable,你需要序列化,它是連接數據集,而不是