“System.IO.FileNotFoundException”类型的未经处理的异常在 mscorlib.dll 中发生
这个错误是我在打包的时候。发现的,由于我移动了我的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 中发生的更多相关文章
- MVC开发中的常见错误-07-“System.IO.DirectoryNotFoundException”类型的未经处理的异常在 mscorlib.dll 中发生
“System.IO.DirectoryNotFoundException”类型的未经处理的异常在 mscorlib.dll 中发生 其他信息: 未能找到路径“F:\Users\home\Docume ...
- “System.Reflection.TargetInvocationException”类型的未经处理的异常在 mscorlib.dll 中发生
异常汇总:http://www.cnblogs.com/dunitian/p/4523006.html#signalR 第一种,权限不够,在项目运行的时候弹出==>解决方法:以管理员权限运行vs ...
- Owin:“System.Reflection.TargetInvocationException”类型的未经处理的异常在 mscorlib.dll 中发生
异常汇总:http://www.cnblogs.com/dunitian/p/4523006.html#signalR 这个异常我遇到两种情况,供园友参考: 第一种,权限不够,在项目运行的时候弹出== ...
- c#重命名文件,报错“System.NotSupportedException”类型的未经处理的异常在 mscorlib.dll 中发生”
修改远程服务器的文件名,报错“System.NotSupportedException”类型的未经处理的异常在 mscorlib.dll 中发生”,“System.NotSupportedExcept ...
- EF异常:“System.InvalidOperationException”类型的未经处理的异常在 mscorlib.dll 中发生
实体框架System.Data.Entity.SqlServer提供者类型”. SqlProviderServices EntityFramework. 的在应用程序配置文件注册状态"置疑 ...
- 使用过多的递归出现错误,“System.StackOverflowException”类型的未经处理的异常在 mscorlib.dll 中发生
class Program { static void Main(string[] args) { sub(0); } private static void sub(int count) { ...
- “System.OutOfMemoryException”类型的未经处理的异常在 mscorlib.dll 中发生
在VS中写程序遇到这样的问题.但数据规模小的时候不出现,但数据规模大的时候就出现.但我的电脑用32G内存.处理的文本也不是很多,在文本alignment时出错.
- “System.Reflection.AmbiguousMatchException”类型的异常在 mscorlib.dll 中发生
错误提示: “System.Reflection.AmbiguousMatchException”类型的异常在 mscorlib.dll 中发生,但未在用户代码中进行处理. 发现不明确的匹配. 问题原 ...
- “System.OutOfMemoryException”类型的异常在 mscorlib.dll 中发生,但未在用户代码中进行处理
“System.OutOfMemoryException”类型的异常在 mscorlib.dll 中发生,但未在用户代码中进行处理 这个原因肯定不是因为程序内部的逻辑错误,或者别的什么情况. 想想,肯 ...
随机推荐
- php中全局变量global和超全局变量$GLOBALS
php中全局变量global和超全局变量$GLOBALS 1.global Global的作用是定义全局变量,但是这个全局变量不是应用于整个网站,而是应用于当前页面,包括include或require ...
- 杂项:Kafka
ylbtech-杂项:Kafka Kafka是由Apache软件基金会开发的一个开源流处理平台,由Scala和Java编写.Kafka是一种高吞吐量的分布式发布订阅消息系统,它可以处理消费者规模的网站 ...
- x+=y与x=x+y相同吗?
为了将赋值操作简便化,Java提供了很多扩展赋值运算符,例如+=.-=./=.*=等等,那么问题来了,x += 1与x = x +1两者相同吗? public class EqualsTest { @ ...
- JS中的数据类型及判断数据类型的方法
简单类型(基本类型): number,string,boolean,null,undefined 复杂类型(引用类型):object typeof 只能判断基本数据类型 instanceof 能够判断 ...
- BZOJ 4259 FFT
思路: 为什么好多字符串的题都可以用FFT啊.... 我们其实是要判断$\Sigma (a[i]-b[i])^2*a[i]*b[i]==0$ 那就把a串翻转过来 把 上式展开 大力做几遍FFT就好啦~ ...
- 使用Micrisoft.net设计方案 第二章组织模式
第二章组织模式 模式不仅依赖于它所包含的更小模式,同时也依赖包含它的更大的模式.它是描述复杂软件的系统方法. 本章的目标是让我们了解以下问题: 1.如何标识模式与模式的关系 2.如何把模式组织成模式集 ...
- 将我们的parser转换成Monad
还记得我们上一篇delegate类型的parser吗 ,在开始本篇之前,强烈建议你复习一下这个parser定义 public delegate Maybe<Tuple<T,string& ...
- Vue-router记录
一.嵌套路由默认选中第一个子路由 可以给主路由加一个重定向的属性,把路径指向相应的子路由. { path: '/home', name: 'Home', //重定向 redirect: '/home/ ...
- 如何使用fetch
Fetch API 提供了一个 JavaScript接口,用于访问和操纵HTTP管道的部分,例如请求和响应.它还提供了一个全局fetch()方法,该方法提供了一种简单,合乎逻辑的方式来跨网络异步获取 ...
- JavaScript Cookies使用
Cookie 是个存储在客户端(浏览器)记录信息确定用户身份的小文本文件,可以用来跟踪用户当前登陆状态和用户浏览页面的次数,记录用户输入的文本信息,也可以在页面间传递变量,记录用户一些行为. 当浏览器 ...