这是C#编程中常见的错误,进行反射时候报错,我们首先要理解反射的原理,首先用Assembly.Load()方法去配置文件中找Key值为”DB”的Valaue值,Value为D层类库的名称,通过CreateInstance方法把D层类库类传递进去,反射D层指定类的执行结果。
代码如下:
string StrDB = System.Configuration.ConfigurationManager.AppSettings["DB"];
public IDAL.ILogin CreateLog()
{
string ClassName = StrDB +"." + "Data";
return(IDAL.ILogin)Assembly.Load(StrDB).CreateInstance(ClassName);
}
红色代码报错,在执行反射是找不到D层类库名称,类库都找不到了类库中的类就更找不到了。
解决方法有两种:
打开项目资源管理文件,找到运行类库的文件夹,我这个是类库名字是UI,打开UI\bin\Debug,现去报错提示中的DAL类库文件夹DAL\bin\Debug把DAL.dll和DAL文件放到UI指定文件夹中即可