My code
type = Type.GetType(key);
The key I am passing is the qualified namespace name.
My code is in BusinessLayer. I am creating an instance of DataAccessLayer. The DataAccessLayer link is added to the BusinessLayer.
I get an error message like "Could not load type" Catalyst.DAL.ExamDAO.CExamDAO "from the assembly" BusinessLayer, Version = 1.9.3.0, Culture = neutral, PublicKeyToken = null " .
What should I do to explicitly indicate that a class belongs to a DataAccessLayer?
The key key is "Catalyst.DAL.ExamDAO.CExamDAO"
Edit:
My actual code
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; }
I am trying to load default classes if there is no setting. The method is in BO. If I pass the key as a namespace, then qualified names of any Bo type that it converts. But DAO type it wont
source share