关于程序集Assembly.Load(path)的一些注意事项
来源:互联网 发布:网络测线仪 编辑:程序博客网 时间:2024/05/21 09:28
因为Assembly.Load(path)这里的path必须是一个程序集的名称,而不是类命名空间的名称。
2.请检查数据层是否实现了接口。
SQLServerDAL下面的具体类是否实现了接口的定义,如:
3.请检查程序集名称和命名空间不一致。
因为Assembly.Load(path)这里的path必须是一个程序集的名称
CreateInstance(CacheKey)这里的CacheKey其实是需要反射的类型全名(包括命名空间的全路径)。
所以,尽量让程序集名称和命名空间一致,这样的得到的类型全名=程序集名称+类名。
否则,你需要把CacheKey换成实际的类型全名。
4.请检查BLL层是否添加了SQLServerDAL的项目引用。
》》》》》》》》》》》》》》》》》》》》》》》》》》
《《《《《《《《《《《《《《《《《《《《《《《《《《
方式一:通过类名来生成对象(优势:方便;劣势:不能以递增方式增加需转化成对象的类文件,即每次发布需整个项目重新编译)经测试正确
public class FruitFactory
{
public IFruit MakeFruit(string Name)
{
IFruit MyFruit = null;
try
{
Type type = Type.GetType(Name,true);
MyFruit = (IFruit)Activator.CreateInstance(type);
}
catch (TypeLoadException e)
Console.WriteLine("I dont know this kind of fruit,exception caught - {0}" ,e.Message);
return MyFruit;
}
}
方式二:通过反射(需提供文件路径,类名;优势:可以以递增文件的方式发布程序;劣势:生成文件麻烦)未测试
/// <summary>
/// 创建对象(外部程序集)
/// </summary>
/// <param name="path">文件路径</param>
/// <param name="typeName">类型名</param>
/// <returns>创建的对象,失败返回 null</returns>
public static object CreateObject(string path, string typeName)
{
object obj = null;
try
{
obj = Assembly.Load(path).CreateInstance(typeName);
}
catch (Exception ex)
{
Debug.Write(ex);
}
- 关于程序集Assembly.Load(path)的一些注意事项
- 关于Assembly.Load(path).CreateInstance
- 关于反射Assembly.Load("程序集").CreateInstance("命名空间.类")
- 关于反射Assembly.Load("程序集").CreateInstance("命名空间.类")
- Assembly.Load()不能加载程序集的问题
- Assembly.Load()不能加载程序集的问题
- Assembly.Load()不能加载程序集的问题
- 动态加载程序集Assembly.Load
- 工厂模式的Assembly.Load(path).CreateInstance(className)出错解决方法
- 关于在IIS服务器上运行asp.net Web程序出现下面 “Could not load file or assembly。。。”问题的
- c#使用反射加载程序集Assembly。load()使用全过程
- 反射动态加载程序集Assembly.Load和Assembley.LoadFrom
- Assembly.Load()、Assembly.LoadFrom() 方法的使用
- c# Runtime load library; Load Assembly from Specific Directory Path
- 工厂模式生成构造函数带参数的对象时的解决办法(Assembly.Load(path).CreateInstance)
- Assembly.Load,Assembly.LoadFrom,Assembly.LoadFile的简单用法
- 聊天程序的一些注意事项
- 回顾过去程序的一些注意事项
- NoSQL数据库笔谈
- hdu 1025 Constructing Roads In JGShining's Kingdom
- Java 把一个InputStream转换为一个BufferedReader
- Beanstalk协议
- FansMail:邮件发送标准API与技术实现(Java)
- 关于程序集Assembly.Load(path)的一些注意事项
- 计算思维
- 面向过程和面向对象
- ubutun12.04下安装ssh
- J2EE 应用实践教程第二章 Spring框架笔记1
- http头信息
- Oracle 10g启动后报ORA-16038错误的解决方法
- 2个span标签,一个是图片 一个是文本,对齐
- java语言基础