我正在尝试为包含 SQL 查询结果的 XML 字符串创建一个解析器框架。目的是从通用类继承,这些类是用列数据类型实例化的。包含的代码适用于单列品种。两列将有额外的类,等等。
我需要能够指定泛型类型必须支持 Parse(string) 方法。我该怎么做呢?
abstract class OneColumnParser<Col1>
{
abstract string Column1;
List<Col1> ParseQueryResult(string queryResult)
{
XmlDocument xDoc = new XmlDocument();
xDoc.LoadXml(queryResult);
List<Col1> results = new List<Col1>();
foreach (XmlNode xNode in xDoc.GetElementsByTagName(Column1))
{
results.Add(Col1.Parse(xNode.InnerText));
}
}
}
当我编译上面的内容时,我在 results.Add() 行上得到“'Col1' is a 'type parameter', which is not valid in the given context”,因为我没有指定类型必须支持该方法. 但是怎么做?