【发布时间】:2017-12-10 18:12:00
【问题描述】:
我有不同的可序列化的类。
我有一个方法,看起来像这样:
public void Serialize(List<ClassName1> CT, string Address)
{
...
XmlSerializer serializer = new XmlSerializer(typeof(List<ClassName1>));
...
}
为了序列化 ClassName1,我可以使用这个函数,但我不能将它用于名为 ClassName2 的第二个类。 类不同,但都是可序列化的。
我现在可以复制和粘贴方法并更改类,但我觉得这很愚蠢,因为方法的唯一区别是名称。
我试着这样做:
public void Serialize(List<object> CT, string Address)
{
...
XmlSerializer serializer = new XmlSerializer(typeof(List<object>));
...
}
因为我认为一切都是 c# 中的“对象”,但是当我使用它时,我得到“无法转换”错误。
xml.Serialize(listNumber, Address);
我觉得这可以用泛型解决,但我从来没有使用过任何类型的泛型,所以我完全不知道它是否应该以及如何工作。
【问题讨论】:
-
您可以使用静态方法创建一个静态类,例如
public static void SerializeDynamicClass<T>(this T clsObject) where T : class { "Do your XmlSerializer code here"}
标签: c# class generics serialization