Это учебный проект. У меня есть три класса базы данных 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:
public class SqlServerDB: Database
{
string str = "";
public SqlServerDB(DbConnection DBConn)
: base(DBConn)
{
str = "SQLServer";
}
}
Что я делаю не так?
Спасибо.