用Activator .CreateInstance
来源:互联网 发布:欧母龙plc编程软件 编辑:程序博客网 时间:2024/05/18 00:37
在工厂模式中是非常有用,可以使程序有更高的扩展性。
Activator .CreateInstance:使用命名的程序集和默认构造函数,创建名称已指定的类型的实例。
例子
创建一个接口,类继承接口,主函数引用接口,如果以后增添新的Person,只需要增加类
namespace InterfaceP{ public interface IObjcet { string say(); string Name { get; set; } }}namespace test.Person{ public class test : IObjcet { private string _name; public string Name { get { return this._name; } set { this._name = value; } } public string say() { return "test"+_name; } }}namespace ConsoleApplication1{ class Program { static void Main(string[] args) { ObjectHandle handle = Activator.CreateInstance("test.Person", "test.Person.test");//(assembleName,TypeName) IObjcet p = (IObjcet)handle.Unwrap(); p.Name = "Alice"; Console.WriteLine(p.say()); } }}
在另一个程序中调用DLL或者exe除了使用Process,还可以使用System.Reflection.Assembly.LoadFrom
System.Reflection.Assembly assem = System.Reflection.Assembly.LoadFrom("RIOVolOcean.exe"); Type type = assem.GetType("RIOVolOcean.GetData"); Object OceanObj = Activator.CreateInstance(type); MethodInfo mi = type.GetMethod("Run"); Object returnValue = mi.Invoke(OceanObj, new object[] { Conn.ConnectionString, request.RequestID.ToString(), listRic });
注意:如果要debug必须把pdb文件放到bin目录下面,并且调用方法上 有设置断点
0 0
- 用Activator .CreateInstance
- 用Activator .CreateInstance代替new实现类的实例化Assembly.CreateInstance()与Activator.CreateInstance()方法的区别
- Use System.Activator.CreateInstance
- Activator.CreateInstance(T) 方法
- 代替Activator.CreateInstance
- Activator.CreateInstance(T) 方法
- C# Activator.CreateInstance()方法
- Activator.CreateInstance 方法
- 【C#】Activator.CreateInstance用法
- 用Activator .CreateInstance代替new实现类的实例化
- 用Activator .CreateInstance代替new实现类的实例化
- 用Activator .CreateInstance代替new实现类的实例化
- Assembly.CreateInstance()与Activator.CreateInstance()方法
- C# Activator.CreateInstance()方法使用
- C# Activator.CreateInstance()方法使用
- Assembly.CreateInstance()与Activator.CreateInstanc
- C#的Activator.CreateInstance方法
- Assembly.LoadFrom和Activator.CreateInstance
- css排版
- 变化
- wget拉取文件失败
- 给JSON中put的value=null时,这对key=value会被隐藏掉。
- Android SDK Manager 不能访问的解决办法
- 用Activator .CreateInstance
- JS错误笔记
- JSP的重定向
- 1028
- node.js npm常用命令
- block crash的情形
- Scala并发编程——互动出版网
- 浅析java集合
- 机器学习物语(1):世界观设定