我正在使用 xml 序列化器,如下所示:
public T Deserialize<T>(string model, string rootElementName = null) where T : new()
{
var xmlRootAttribute = GetXmlRootAttribute(rootElementName);
var serializer = new XmlSerializer(typeof(T), xmlRootAttribute);
using (var memoryStream = new MemoryStream())
using (var streamWriter = new StreamWriter(memoryStream))
{
streamWriter.WriteLine(model);
streamWriter.Flush();
memoryStream.Position = 0;
return (T) serializer.Deserialize(memoryStream);
}
}
在我的系统中有一个通用的地方(涉及数据验证),我不需要知道确切的类类型,实际上我只知道基类。是否可以使用类型参数基类来反序列化这个 xml 文档?如果 T 实际上是 aList<DerivedClass>
怎么办?调用为:
protected List<T> Deserialize<T>(string model) where T : new()
{
return XmlHelper.Deserialize<List<T>>(model, RootElementName);
}