Mã của tôi làType.GetType (string typeName) trả về null
type = Type.GetType(key);
chính mà tôi vượt qua là một cái tên có trình độ namespace.
Mã của tôi nằm trong BusinessLayer. Tôi đang tạo một thể hiện của DataAccessLayer. Tham chiếu DataAccessLayer được thêm vào BusinessLayer.
Tôi nhận được lỗi là "Không thể tải loại 'Catalyst.DAL.ExamDAO.CExamDAO' từ assembly 'BusinessLayer, Version = 1.9.3.0, Culture = neutral, PublicKeyToken = null'.".
Tôi nên làm gì để chỉ định rõ ràng rằng lớp đó là từ DataAccessLayer?
thung lũng chính là "Catalyst.DAL.ExamDAO.CExamDAO"
Edit:
mã thực tế của tôi là
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;
}
Tôi cố gắng để tải các lớp mặc định nếu có không có tùy chỉnh. Phương thức là trong BO. Nếu tôi chuyển khóa như tên không gian tên đủ điều kiện của bất kỳ loại Bo nào nó chuyển đổi. Nhưng DAO gõ nó wont
Tại sao các bạn làm theo cách này thay vì 'CExamDAO mới()'? nếu đúng là "tham chiếu DataAccessLayer được thêm vào BusinessLayer" thì không có lý do gì mà bạn không thể sử dụng toán tử 'new'. Hoặc nếu bạn thực sự chỉ muốn tham chiếu kiểu thì 'typeof (CExamDAO)' –
Cho chúng tôi giá trị văn bản của "khóa". – xanatos
@Adam Ralph. Trên thực tế tôi cần phải chuyển đổi giữa các hội đồng tùy chỉnh và lắp ráp mặc định. Tôi dint đặt mã đó ở đây. –