这个错误是我在打包的时候。发现的,由于我移动了我的project的位置(从C盘移动到了D盘),看一下出错的代码:

    Dim strDB As String = System.Configuration.ConfigurationSettings.AppSettings("DBUser")    '这里改动配置文件就能够确定是查询那个表了。
'/// <summary>
'/// depiction:<实例化一个DAL中的User表的类>
'/// </summary>
'/// <param name="<參数名称>"><參数说明></param>
'/// <returns>
'///<返回值是一个boolean值>
'/// </returns>
Public Function CreateUserInfo() As IDAL.IUser
Return CType(Assembly.Load("DAL").CreateInstance("DAL" & "." & strDB), IUser)
End Function

上面strDB的值是从配置文件里取出来的,个人觉得,只个人觉得配置文件就是一个变量库。而不把这个变量写在代码中是由于配置文件是在系统执行的时候,就会将里面的值载入出来。

首先利用这次机会,我想说说我对反射的理解:

我们使用反射,首先要清楚命名空间中几个类的关系:

System.Reflection 命名空间

(1)AppDomain:应用程序域,能够将其理解为一组程序集的逻辑容器

(2)Assembly:程序集类

(3) Module:模块类

(4)Type:使用反射得到类型信息的最核心的类

他们之间是AppDomain能够包括多个Assembly,一个Assembly能够包括多个Module,一个Module能够包括多个Type.

在我们设计的机房收费系统中,上面的代码就是我们动态载入一个程序集(Assembly)。动态载入程序集的方法能够使用三种:Load。LoadFrom和LoadWithPartialName三个Assembly的静态方法。

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcWl1bXV4aWEwOTIx/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">

显然我们用的是第一种。

Assembly.Load(),这种方法载入程序集的顺序是:首先它回去全局程序集缓存查找。再到应用程序的根文件夹查找,最后在应用程序的私有路径中查找。

Assembly.Load("")的使用说明例如以下;   

        并非命名空间。经常使用的是程序集名称,也就是dll的名称   

        重载列表     

        名称     说明       

        Assembly.Load   (AssemblyName)     在给定程序集的   AssemblyName   的情况下,载入程序集。    

 

       关于反射Assembly.Load("程序集").CreateInstance("命名空间.类")

       而无论在哪一层写这段代码当中的("程序集")读取的实际是web层bin目录下的dll,也就是说你反射的类的程序集dll在web层的bin下必须有。

       Assembly.Load("程序集名")

在看我们的代码:程序集名为"DAL"(DAL为我的D层的文件包),直接上图大家看的更清楚:

大家能够看到在我的UI层(Web层)根本就没有DAL.dll文件,有的话依照字母排列应该在红线处。所以。我们就到DAL层(DAL\bin\release)将DAL.dll相关文件拷到Web层。结果:

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcWl1bXV4aWEwOTIx/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">

好的,执行一下就好了。

“System.IO.FileNotFoundException”类型的未经处理的异常在 mscorlib.dll 中发生的更多相关文章

  1. MVC开发中的常见错误-07-“System.IO.DirectoryNotFoundException”类型的未经处理的异常在 mscorlib.dll 中发生

    “System.IO.DirectoryNotFoundException”类型的未经处理的异常在 mscorlib.dll 中发生 其他信息: 未能找到路径“F:\Users\home\Docume ...

  2. “System.Reflection.TargetInvocationException”类型的未经处理的异常在 mscorlib.dll 中发生

    异常汇总:http://www.cnblogs.com/dunitian/p/4523006.html#signalR 第一种,权限不够,在项目运行的时候弹出==>解决方法:以管理员权限运行vs ...

  3. Owin:“System.Reflection.TargetInvocationException”类型的未经处理的异常在 mscorlib.dll 中发生

    异常汇总:http://www.cnblogs.com/dunitian/p/4523006.html#signalR 这个异常我遇到两种情况,供园友参考: 第一种,权限不够,在项目运行的时候弹出== ...

  4. c#重命名文件,报错“System.NotSupportedException”类型的未经处理的异常在 mscorlib.dll 中发生”

    修改远程服务器的文件名,报错“System.NotSupportedException”类型的未经处理的异常在 mscorlib.dll 中发生”,“System.NotSupportedExcept ...

  5. EF异常:“System.InvalidOperationException”类型的未经处理的异常在 mscorlib.dll 中发生

     实体框架System.Data.Entity.SqlServer提供者类型”. SqlProviderServices EntityFramework. 的在应用程序配置文件注册状态"置疑 ...

  6. 使用过多的递归出现错误,“System.StackOverflowException”类型的未经处理的异常在 mscorlib.dll 中发生

    class Program { static void Main(string[] args) { sub(0); }     private static void sub(int count) { ...

  7. “System.OutOfMemoryException”类型的未经处理的异常在 mscorlib.dll 中发生

    在VS中写程序遇到这样的问题.但数据规模小的时候不出现,但数据规模大的时候就出现.但我的电脑用32G内存.处理的文本也不是很多,在文本alignment时出错.

  8. “System.Reflection.AmbiguousMatchException”类型的异常在 mscorlib.dll 中发生

    错误提示: “System.Reflection.AmbiguousMatchException”类型的异常在 mscorlib.dll 中发生,但未在用户代码中进行处理. 发现不明确的匹配. 问题原 ...

  9. “System.OutOfMemoryException”类型的异常在 mscorlib.dll 中发生,但未在用户代码中进行处理

    “System.OutOfMemoryException”类型的异常在 mscorlib.dll 中发生,但未在用户代码中进行处理 这个原因肯定不是因为程序内部的逻辑错误,或者别的什么情况. 想想,肯 ...

随机推荐

  1. Linux如何把以下文件夹修改为root权限?

    inux 修改文件目录所有者例:要将当前目录下名 title 的文件夹及其子文件的所有者改为geust组的su用户,方法如下:#chown -R su.geust title-R 递归式地改变指定目录 ...

  2. 国内物联网平台初探(三) ——QQ物联·智能硬件开放平台

    平台定位 将QQ帐号体系.好友关系链.QQ消息通道及音视频服务等核心能力提供给可穿戴设备.智能家居.智能车载.传统硬件等领域的合作伙伴,实现用户与设备.设备与设备.设备与服务之间的联动. 实现用户与设 ...

  3. C++ 指针 引用 变量引用

    变量引用: 引用的作用就是给变量起个别名,假如有一个变量a,想给它起个别名b,         可以这么写:int a;//定义a是整型变量.int &b=a;//声明b是a的引用. 上面就是 ...

  4. Ajax+Java实现大文件切割上传

    技术体系:html5(formdata) + java + servlet3.0+maven + tomcat7 <!DOCTYPE html> <html> <head ...

  5. zgb老师关于java集合的总结

    数组:存多个数据 操作不便集合(Collection ):存多个数据 管理多个数据 提供更为方便的操作Iterator:专门针对集合 进行迭代List:有序的 允许重复的元素ArrayList:底层数 ...

  6. 利用Aspose.Cells导出Datatable数据

    面对一些的格式各样的到处数据的要求,自学了一点 Aspose.Cells中操作Excel知识,如下代码: /// <summary> /// DataTable导出Excel /// &l ...

  7. UI常用网站

    网站大全 国外的花瓣--Pinterest • The world’s catalog of ideas 字体海洋--求字体网提供中文和英文字体库下载.识别与预览服务,找字体的好帮手 原创设计UI-- ...

  8. 代理模式(Proxy)C++实现

    代理模式 尽管Decorator的实现部分与代理相似,但Decorator的目的不一样.Decorator为对象添加一个或多个功能,而代理则控制对对象的访问. 意图: 为其他对象提供一种代理以控制对这 ...

  9. 抽象工厂模式(AbsFactory)C++实现

    模式意图:提供一个创建一系列相关或相互依赖对象的接口,二无需指定他们具体的类. 效果: 分离了具体的类.     使  a.客户与类的实现分离  b.客户通过抽象接口操纵实例  c.产品的类名在实现中 ...

  10. 了解jQuery的$符号

    $是什么? 可以使用typeof关键字来观察$的本质. console.log(type of $); //输出结果为function 因此可以得出结论,$其实就是一个函数.$(); 只是根据所给参数 ...