Мой код:
type = Type.GetType(key);
Ключ, который я передаю, является квалифицированным именем пространства имен.
Мой код в BusinessLayer.Я создаю экземпляр DataAccessLayer.Ссылка DataAccessLayer добавлена в BusinessLayer.
Я получаю сообщение об ошибке как "Не удалось загрузить тип 'Catalyst.DAL.ExamDAO.CExamDAO' из сборки" BusinessLayer, версия = 1.9.3.0, Culture = нейтральный, PublicKeyToken = null '. ".
Что я должен сделать, чтобы явно указать, что класс является классом из DataAccessLayer?
Значение ключа -" Catalyst.DAL.ExamDAO.CExamDAO "
Редактировать:
Мой фактический код:
public static object getClassInstance(string key, params object[] constructorArgs)
{
string assemblyPath = null;
string customClassName = null;
DataSet objDataset = getAssemblyInfo(key);
if (objDataset != null && objDataset.Tables.Count > 0 && objDataset.Tables[0].Rows.Count > 0)
{
assemblyPath = objDataset.Tables[0].Rows[0]["ACA_ASSEMBLY_PATH"].ToString();
customClassName = objDataset.Tables[0].Rows[0]["ACA_CLASS_NAME"].ToString();
}
Assembly assembly;
Type type;
if (assemblyPath != null && assemblyPath != string.Empty)
{
assembly = Assembly.LoadFile(assemblyPath);
type = assembly.GetType(customClassName);
}
else // if no customisation
{
type = Type.GetType(key);
}
object classInstance = constructorArgs == null ? Activator.CreateInstance(type) : Activator.CreateInstance(type, constructorArgs);
if (classInstance == null) throw new Exception("broke");
return classInstance;
}
Я пытаюсь загрузить классы по умолчанию, если нет настройки.Метод в БО.Если я передаю ключ как квалифицированное имя пространства имен любого типа Bo, он конвертируется.Но DAO типа это не будет