这是一个学习项目。我有三个数据库类 A、B、C。有一个工厂类通过其构造函数接收要创建的类的对象。三个类[A,B,C] 中的每一个都有一个带有参数的构造函数来提供数据库连接对象。这是我在工厂类的 createObject 方法中使用的代码:
Type classtyp = Type.GetType(className);
Type[] constrParam = new Type[1];
constrParam[0] = typeof(DBConnection);
ConstructorInfo constr = database.GetConstructor(constrParam);
return constr.Invoke(constrParam) as Database;
上面的最后一行给出了这个错误。
“ 'System.RuntimeType' 类型的对象无法转换为 'System.Data.Common.DbConnection' 类型。 ”
“System.RuntimeType”是怎么来的?我正在尝试创建一个 A 类对象,该对象具有一个构造函数,该构造函数采用 DBconnection 类型的变量。
目前我正在传递给工厂类的指令以仅创建 A 类的实例。这是A类的代码:
public class SqlServerDB: Database
{
string str = "";
public SqlServerDB(DbConnection DBConn)
: base(DBConn)
{
str = "SQLServer";
}
}
我究竟做错了什么?
谢谢。