是否可以将派生类反序列化为不知道确切类类型的基础?

时间:2012-12-25 14:02:58

标签: c# xml-serialization deserialization

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

0 个答案:

没有答案