我正在使用xml serializator,如下所示:
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实际上是List<DerivedClass>
怎么办?调用为:
protected List<T> Deserialize<T>(string model) where T : new()
{
return XmlHelper.Deserialize<List<T>>(model, RootElementName);
}