1

我正在使用 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);
    }
4

0 回答 0