欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

C#中Activator.CreateInstance()方法用法分析

程序员文章站 2023-12-01 16:06:04
本文实例讲述了c#中activator.createinstance()方法用法。分享给大家供大家参考。具体分析如下: activator 类 包含特定的方法,用以在本...

本文实例讲述了c#中activator.createinstance()方法用法。分享给大家供大家参考。具体分析如下:

activator 类

包含特定的方法,用以在本地或从远程创建对象类型,或获取对现有远程对象的引用。

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);

希望本文所述对大家的c#程序设计有所帮助。