本文来自:http://blog.csdn.net/jaydawson/article/details/5539438

C#在类工厂中动态创建类的实例,所使用的方法为:

1. Activator.CreateInstance (Type)

2. Activator.CreateInstance (Type, Object[])

两种方法区别仅为:创建无参数的构造方法和创建有参数的构造函数。

//Activator.CreateInstance(Type)

object result = null;

Type typeofControl =null;

typeofControl = Type.GetType(vFullClassName);

result = Activator.CreateInstance(typeofControl);

//Activator.CreateInstance(Type,Object[])

object result = null;

Type typeofControl =null;

typeofControl = Type.GetType(vFullClassName);

result = Activator.CreateInstance(typeofControl, objParam);

但是在动态创建时,可能会动态使用到外部应用的DLL中类的实例,则此时需要进行反编译操作,使用Reflection命名控件下的Assembly类。

//先使用Assembly类载入DLL,再根据类的全路径获取类

object result = null;

Type typeofControl = null;

Assembly tempAssembly;

tempAssembly = Assembly.LoadFrom(vDllName);

typeofControl = tempAssembly.GetType(vFullClassName);

result = Activator.CreateInstance(typeofControl, objParam);

createinstance.java_C# Activator.CreateInstance()方法使用相关推荐

  1. 关于Assembly.CreateInstance()与Activator.CreateInstance()方法

    关于Assembly.CreateInstance()与Activator.CreateInstance()方法 动态创建类对象,大多是Activator.CreateInstance()和Activ ...

  2. createinstance.java,Activator.CreateInstance:类的动态实例化

    我正在设计一个松散耦合的结构.我想通过一个由String表示的代码来调用来自不同程序集/名称空间的类.我的设计是,每个客户端的业务规则都在不同的程序集上,并且彼此不依赖(一个客户端与一个DLL的比率) ...

  3. 使用Activator.CreateInstance完善简单工厂

    前几天在项目中看到别人的工厂类使用Activator.CreateInstance() 之前用简单工厂都是用switch ...case ,之前没有用过便查了查资料,正是这个方法+ 反射简化了工厂模式 ...

  4. activator.createinstance 需要垃圾回收么_Epsilon:你为什么需要一个不回收内存的垃圾回收器?...

    JDK 11中的JEP 318添加了一个名为Epsilon的垃圾回收器实现.Epsilon的特点是只负责分配内存,而不做任何垃圾回收操作.当堆内存空间就不够时,自动触发与OutOfMemoryErro ...

  5. thread.abort java_C# Thread.Abort方法与ThreadAbortException异常(取消线程与异常处理)...

    1.Abort当前线程,后续程序不会执行 class Program { public static Thread thread1; static void Main(string[] args) { ...

  6. 梦想成现实:用xUnit.net在单元测试中实现构造函数依赖注入

    英文关键词:Constructor Dependency Injection and Unit Testing(为了方便英文搜索) 自从博客园开发团队将开发架构迁移至DDD(领域驱动开发),就开始正式 ...

  7. 我们一起完成插件框架的设计与实现

    我们一起完成插件框架的设计与实现 原文:我们一起完成插件框架的设计与实现 开场一些题外话,今天登陆这个"小菜"的博客园,感触颇多."小菜"是我以前在QQ群里面的 ...

  8. 转【C#调用DLL的几种方法,包括C#调用C\C++\C#DLL】

    C#中dll调用方法 一.      DLL与应用程序 动态链接库(也称为DLL,即为"Dynamic Link Library"的缩写)是Microsoft Windows最重要 ...

  9. Zaxis数据编程方法

    每一个数据项包括3部分 组包类.解码器类和界面 一.界面 1.在"资源解决方案管理器"中右单击SetupUI目录.菜单"添加"->"用户控件&q ...

最新文章

  1. 14/10/校内测试{天天考,丧心病狂}
  2. 简单DP【p2642】双子序列最大和
  3. linux7 security,SECURITY-centos7下NFS使用与配置
  4. 异步加载js的三种方法
  5. 单元测试Java Hadoop作业
  6. 前端面试常见逻辑题收集及分析
  7. 驱动的定义、分类、安全性
  8. 搭建本地Ubuntu14.04源
  9. post和php input,PHP“php:/Input”vs$POST
  10. hdu4045(递推)
  11. Drive Scope for mac(硬盘检查分析工具)
  12. STM32控制AD7124采集调试流程
  13. segy地震数据的读取python_python segy格式地震数据读写包segyio学习笔记(二)
  14. 微信小程序(引入Iconfont 阿里巴巴矢量图标库 )
  15. ai怎么做盒子效果图_ai怎么制作包装盒? Ai贴图工具制作包装盒的实例教程
  16. pc端和移动端有什么区别?
  17. alpha测试什么意思,和Beta测试有何区别?
  18. 3060ti适配的cuda和cudnn
  19. 实例:泰坦尼克号幸存者的预测
  20. 联想网上审批系统方案

热门文章

  1. 命名空间元素的封装性
  2. Spring boot + Redis
  3. php正则的练习(持续跟新)
  4. .NET 判断进程是否运行 是否未响应
  5. 读书笔记:《思考的乐趣:Matrix67数学笔记》第4章 统计数据的陷阱
  6. 不要对对象进行粗暴的等号赋值
  7. XML Parser(Tinyxml)的使用
  8. PowerDesigner导出excel
  9. python3 decode encode 字符串 字节 互转
  10. java seam 框架简介