在自己做Demo的时候,用抽象工厂加反射来确定调用哪一个D层的时候,出现了错误“未能加载文件或程序集或它的某一个依赖项。系统找不到指定的文件”
记得以前也出现过类似的错误,然后重新生成解决方案就好了。这次按照以前的经验,还是重新生成了一下。然后还是出现了这个错误,就郁闷了,不知道问题出在哪里。然后还是借助网络。
出现这种错误有两种情况:
1.DLL的文件名写错了
2.DLL不存在
我检查了自己的DLL命名,确实没问题。而且我的DLL也是存在的。那么到底是哪里错了呢?
原来是因为我UI层里面没有这个D层的DLL。通过参考社和师哥的博客知道反射一切是以UI层的bin文件夹下的DLL名称为中心。.net的默认机制就是从U层的bin里面去找对应的DLL,我的生成在了D层的bin目录下,当然找不到了。这个问题在编译的时候是不会报错的,在运行的时候就会显现出来。
解决办法就是修改DAL的生成目录为UI/bin里面就可以了(也可能是bin/debug里面,根据具体情况来确定)
重构的时候不知道什么原因,阴错阳差的没有出现这个问题。现在遇到了,把重构的时候欠缺的东西又补回来了。 在学习的过程中总是会遇到我们不知道的问题,慢慢的就会遇到,就会把它解决了。
原文链接:https://www.f2er.com/javaschema/284558.html