Assembly.Load()不能加载程序集的问题
2008-04-25 13:32
295 查看
在编程中,使用反射(IoC)是一个很好的架构。在.Net中,System.Reflection命名空间提供了对反射的支持。然而,很多朋友在使用Assembly.Load()方法时, 却不能正确装载程序集。比如,很多朋友在模仿PetShop的框架时,使用这样的调用方式:
string assemblyName = ConfigurationManager.AppSettings["webDAL"];
string constructor = ConfigurationManager.AppSettings["constructorClass"];
return (IExample)Assembly.Load(assemblyName).CreateInstance(constructor, false);
然而,在Assembly.Load()方法处,经常出现未能加载程序集的错误:
未能加载文件或程序集“webDAL”或它的某一个依赖项。系统找不到指定的文件
Assembly.Load(assemblyName)实际上是在assemblyName.dll文件中查找类custructor的定义。例如,Assembly.Load("PetShop.SQLServerDAL").CreateInstance("PetShop.SQLServerDAL.Cateogry"),就是在PetShop.SQLServerDAL.dll程序集中查找PetShop.SQLServerDAL.Category类。而在自己定义类库时,往往忽视了生成的程序集的名称。
在类库项目上点击右键->属性,可以设定生成的程序集的文件名。只有正确设置了,才能在Assembly.Load(assemblyName)方法中避免找不到程序集的错误。
string assemblyName = ConfigurationManager.AppSettings["webDAL"];
string constructor = ConfigurationManager.AppSettings["constructorClass"];
return (IExample)Assembly.Load(assemblyName).CreateInstance(constructor, false);
然而,在Assembly.Load()方法处,经常出现未能加载程序集的错误:
未能加载文件或程序集“webDAL”或它的某一个依赖项。系统找不到指定的文件
Assembly.Load(assemblyName)实际上是在assemblyName.dll文件中查找类custructor的定义。例如,Assembly.Load("PetShop.SQLServerDAL").CreateInstance("PetShop.SQLServerDAL.Cateogry"),就是在PetShop.SQLServerDAL.dll程序集中查找PetShop.SQLServerDAL.Category类。而在自己定义类库时,往往忽视了生成的程序集的名称。
在类库项目上点击右键->属性,可以设定生成的程序集的文件名。只有正确设置了,才能在Assembly.Load(assemblyName)方法中避免找不到程序集的错误。
相关文章推荐
- Assembly.Load()不能加载程序集的问题
- Assembly.Load()不能加载程序集的问题
- Assembly.Load()不能加载程序集的问题
- Assembly.Load()不能加载程序集的问题
- Assembly.Load()不能加载程序集的问题
- Assembly不能加载程序集的问题
- 【转】Unable to load embedded resource from assembly 无法加载的程序集嵌入的资源
- Assembly.Load动态加载程序集而不占用文件 z
- 解决在SharePoint 2010/2013部署自己的Event Handler后,抛出”不能加载被引用的第三方的程序集"的问题
- ireport $P{SUBREPORT_DIR}参数的使用 解决:Could not load object from location 不能加载子报表问题
- java.lang.UnsatisfiedLinkError: Can not load XXX library ... JNA不能加载DLL动态库问题
- 使用简单工厂模式出现程序集不能加载的问题的解决方案
- “Could not load file or assembly 。。。试图加载格式不正确的程序”的问题解决
- 问题解决:System.TypeLoadException: 未能从程序集“XXX”中加载类型“XXX
- .net动态加载程序集和影子复制(Dynamic Load Assembly and Shadow Copy)
- c#使用反射加载程序集Assembly。load()使用全过程
- 加载XML时chrome中document不能load的问题
- Assembly.LoadFrom加载程序集无法释放资源的解决方案
- QLibrary::load不能正确加载dll,但加载的dll的路径是正确的
- VBE6EXT.OLB不能加载问题