今天在写反射调用的时候失败了,经过调试和分析,终于攻克了,以下我就详细说明。

一,报错的现象

未能载入文件或程序集“DalSQL”或它的某一个依赖项。系统找不到指定的文件。

说明: 运行当前 Web 请求期间,出现未经处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的具体信息。 异常具体信息: System.IO.FileNotFoundException: 未能载入文件或程序集“DalSQL”或它的某一个依赖项。

系统找不到指定的文件。

错误代码例如以下:

<span style="font-size:14px;">  /// <summary>
/// 通用对象反射(包括缓存)
/// </summary>
/// <param name="className">要反射的类名</param>
/// <returns></returns>
public static T CreateObject(string className)
{
var typeName = assemblyString + "." + className;
//推断对象是否被缓存,假设已经缓存则直接从缓存中读取,反之则直接反射并缓存
var obj = (T)CacheHelper.GetCache(typeName);
if (obj == null)
{
obj = (T)Assembly.Load(assemblyString).CreateInstance(typeName, true);
CacheHelper.Add(typeName, obj, true);
}
return obj;
}</span>

二,分析原因及解决

是否是dll的路径或者名称错误了呢?终究原因还是自己对反射的理解不够深刻,反射的调用应该是: Assembly.Load("程序集").CreateInstance("命名空间.类")。那么我们检查我们的代码是否是这样呢?也就是这行(T)Assembly.Load(assemblyString).CreateInstance(typeName,
true);有没有错误呢?最后发现的确是dll搞错了,“程序集”读取的是Web层bin目录下相应的dll,即反射载入的程序集dll在Web层的bin目录必须有,否则就会出现如题的错误。我们能够通过,在类库项目上点击右键->属性,能够设定生成的程序集的文件名称。

三。配置说明

在代码中我们訪问的是:private static readonly string assemblyString = ConfigurationManager.AppSettings["DAL"];。那么在配置文件里应该进行以下的设置:

<appSettings>

    <add key="DAL" value="DalSQL" />

  </appSettings>

OK,搞定了,加强对反射的理解。

&quot;未能载入文件或程序集“XXX”或它的某一个依赖项。系统找不到指定的文件&quot;的解决方式的更多相关文章

  1. 能加载文件或程序集“XXX”或它的某一个依赖项,系统找不到指定的文件

    能加载文件或程序集“XXX”或它的某一个依赖项,系统找不到指定的文件 http://blog.csdn.net/pplcheer/article/details/7796211 做项目总是遇到各种的问 ...

  2. 机房重构所遇问题&quot;未能载入文件或程序集“DAL”或它的某一个依赖项。系统找不到指定的文件&quot;的解决的方法集锦

    敲七层登录的时候.忽然间认为敲三层搞清的思路瞬间又凌乱了.花了一天的时间边敲边梳理,最终整完了,执行的时候弹出了这种错误:未能载入文件或程序集"DAL"或它的某一个依赖项. 系统找 ...

  3. 未能载入文件或程序集“DAL”或它的某一个依赖项。系统找不到指定的文件。

    这个一般出如今三层给B层与D层之间加抽象工厂-接口-映射.时候出的错.出错的地方是抽象工厂. --如图 watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdTA ...

  4. 异常:未能载入文件或程序集”DAL”或它的某一个依赖项——解决的方法

    以下是我再使用抽象工厂+反射重构机房时,在Factoy中出现了以下一个问题: 去网上查了一下资料,发现这是一个非常普遍的问题,它出现的原因主要有两种: 第一种: 载入DLL路径错误.解决的方法是调整D ...

  5. 目标平台、活动平台 配置,出现未能加载文件或程序集“xxx”或它的某一个依赖项报错

    今天在做动态加载程序集的时候,发现明明程序集存在的情况下,还是依然报“未能加载文件或程序集“xxx”或它的某一个依赖项报错”的错误,排除了程序和配置的错误后,怀疑是否是环境的问题,于是百度加msdn后 ...

  6. 未能加载文件或程序集“XXX”或它的某一个依赖项。试图加载格式不正确的程序。

    64位系统 IIS7.0配置.net网站时报错:未能加载文件或程序集"XXX"或它的某一个依赖项.试图加载格式不正确的程序. 背景: 在64位的操作系统中, IIS7.0配置.ne ...

  7. 【转】未能加载文件或程序集“XXX”或它的某一个依赖项。试图加载格式不正确的程序。

    “/xxxxx”应用程序中的服务器错误. ------------------------------------------------------------------------------- ...

  8. windows7,windows8 64位系统 IIS7.0配置.net网站时报错:未能加载文件或程序集“XXX”或它的某一个依赖项。试图加载格式不正确的程序。

    背景: 在64位的操作系统中, IIS7.0配置.net网站时报错:未能加载文件或程序集“XXX”或它的某一个依赖项.试图加载格式不正确的程序. 解决办法: 把iis 对应的应用程序池 --高级设置- ...

  9. win 8系统:System.IO.FileNotFoundException: 未能加载文件或程序集“CefSharp.Core.dll”或它的某一个依赖项。找不到指定的模块

    最近用CefSharp做了一个chrome核心的浏览器. 在win 7.win 10系统上都正常运行,但是在win 8系统上报错了. win 8系统:System.IO.FileNotFoundExc ...

随机推荐

  1. activity间数据传递

    传递简单数据 创建两个activity,FirstActivity和TwoActivity,这里将会将数据从FisrtActivity传给TwoActivity. 创建完activity的目录界面如下 ...

  2. TortoiseSVN客户端不能记住用户名和密码

    TortoiseSVN客户端重新设置用户名和密码 在第一次使用TortoiseSVN从服务器CheckOut的时候,会要求输入用户名和密码,这时输入框下面有个选项是保存认证信息,如果选了这个选项,那么 ...

  3. logging,numpy,pandas,matplotlib模块

    logging模块 日志总共分为以下五个级别,这五个级别自下而上进行匹配debug->info->warning->error->critical,默认的最低级别warning ...

  4. spark学习(3)---集合

    一.list https://blog.csdn.net/xianpanjia4616/article/details/84930779 华为文档:https://support.huawei.com ...

  5. php部分基础

    变量使用$,如$num = 1; 或 $name = 'hey'; 创建数组:$arr = array('a','b','c'); 或 $arr = array('a' => $name); 取 ...

  6. 洛谷——P3871 [TJOI2010]中位数

    P3871 [TJOI2010]中位数 一眼秒掉,这不是splay水题吗,套模板 #include<bits/stdc++.h> #define IL inline #define N 1 ...

  7. 【阶梯报告】洛谷P3391【模板】文艺平衡树 splay

    [阶梯报告]洛谷P3391[模板]文艺平衡树 splay 题目链接在这里[链接](https://www.luogu.org/problemnew/show/P3391)最近在学习splay,终于做对 ...

  8. Idea+maven+testng+reportng生成测试报告

    TestNG自带的测试报告不是很好用,所以一般结合reportng生成美观的测试报告. 首先,在pom.xml中添加testng和reportng相关依赖 <dependencies> & ...

  9. 类与类之间的关系UML模型图

    关联.依赖.聚合.组合.泛化.实现 类之间可能存在以下几种关系:关联(association).依赖(dependency).聚合(Aggregation,也有的称聚集).组合(Composition ...

  10. 配置Struts2后运行jsp出现404的解决方法

    更新:善用控制台查看错误信息 --------------------------------------------- 原因:Java Build Path没有导入正确的jar包或者导入了但没有把相 ...