C# 在C中序列化泛型类#

C# 在C中序列化泛型类#,c#,xml,generics,serialization,C#,Xml,Generics,Serialization,我在尝试将C#中的对象序列化为XML时遇到问题。 我发现导出此类时出错: [XmlInclude(typeof(CountryData))] [XmlInclude(typeof(ManufacturerData))] [XmlInclude(typeof(ProgramData))] [Serializable()] public class DeliveryTimeList<T> where T : IDeliveryTimeData { private DataTab

我在尝试将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());
    }
}
[xmlclude(typeof(CountryData))]
[xmlclude(typeof(ManufacturerData))]
[xmlclude(typeof(ProgramData))]
[可序列化()]
公共类交付时间列表,其中T:IDeliveryTimeData
{
私有数据表_数据;
公共数据表数据
{
获取{return_data;}
设置{u data=value;}
}
公共交付时间列表()
{
_数据=新数据表();
}
公共无效添加(T数据)
{
//不用
//_data.Rows.Add(data.ItemArray());
}
}
该类是泛型的,因为下一步是在创建该类时更改DataTable,它将包含一个列表。 CountryData、Manufacturer和ProgramData类实现接口IDeliveryTimeData

我得到一个System.InvalidOperationException,描述如下:
XML文档的生成是由Fehler aufgetreten完成的(您不能直接序列化datatable,您需要序列化它附加到的数据集。

您是否也将接口IDeliveryTimeData设置为可序列化?这似乎是不可能的:错误7属性“serializable”对此声明类型无效。它仅对“class、struct、enum、delegate”声明有效。W如果这段代码编译正确,您的代码也应该编译类A:IDeliveryTimeData{}接口IDeliveryTimeData:ISerializable{}啊,是的,这不是一个属性。你需要让你的接口从ISerializablen继承。不确定这是否仍然是一个问题,但我记得在.net 2.0中,你不能序列化datatable,你必须序列化它附加到的数据集