C# 在C中序列化泛型类#
我在尝试将C#中的对象序列化为XML时遇到问题。 我发现导出此类时出错: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
[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,你必须序列化它附加到的数据集