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);
        }
    }

私のシステムには、正確なクラス タイプを知る必要のない一般的な場所 (データ検証を含む) が 1 つあります。実際、私は基本クラスしか知りません。型パラメーター基本クラスとして使用して、この xml ドキュメントを逆シリアル化することは可能ですか? T が実際に a の場合はどうなるList<DerivedClass>でしょうか。次のように呼び出されます。

    protected List<T> Deserialize<T>(string model) where T : new()
    {
        return XmlHelper.Deserialize<List<T>>(model, RootElementName);
    }
4

0 に答える 0