以下のように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);
}