在C#中序列化泛型类

时间:2014-09-01 08:49:01

标签: c# xml generics serialization

我在尝试将C#中的对象序列化为XML时遇到问题。 我在导出这个类时发现它出错:

[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());
    }
}

该类是通用的,因为下一步是在创建类时更改DataTable,它将包含List。 CountryData,Manufacturer和ProgramData类实现了接口IDeliveryTimeData。

我收到一个System.InvalidOperationException,其中包含以下描述: Beim Generieren des XML-Dokuments ist ein Fehler aufgetreten(&lt; - German) 大致翻译在生成XML文档时出现错误。 我不知道为什么它不是序列化但我希望问题与该类是通用的有关。

有人知道我做错了吗?

1 个答案:

答案 0 :(得分:1)

您无法直接序列化数据表,您需要序列化它所附加的数据集