c#中Assembly CreateInstance的使用问题

来源:百度知道 编辑:UC知道 时间:2024/05/08 18:41:39
现在所有一个程序,需要使用C#的反射动态调用DLL文件,我目前只会使用DockContent FormLoad = (DockContent)Assembly.Load(an).CreateInstance(fn)【an是程序集的名称,fn是程序集中命名空间的名称】调用程序。
但是,这样只能调用构造函数中没有参数的程序,可是如果构造参数中有函数(例如public baidu(string baidu)),调用的时候想要赋予构在函数中的参数参数值(baidu("baidu")),调用这个有参数的构造函数,而不是默认的没有参数的。
这个应该怎么解决呢?

使用这个重载函数:C#
public Object CreateInstance (
string typeName,
bool ignoreCase,
BindingFlags bindingAttr,
Binder binder,
Object[] args,
CultureInfo culture,
Object[] activationAttributes
)
参数
typeName
要查找的类型的 Type.FullName。

ignoreCase
如果为 true,则忽略类型名的大小写;否则,为 false。

bindingAttr
影响执行搜索的方式的位屏蔽。此值是 BindingFlags 中的位标志的组合。

binder
一个启用绑定、参数类型强制、成员调用以及通过反射进行 MemberInfo 对象检索的对象。如果 binder 为空引用(在 Visual Basic 中为 Nothing),则使用默认联编程序。

args
Object 类型的数组,包含要传递给构造函数的参数。此参数数组在数量、顺序和类型方面必须与要调用的构造函数的参数匹配。如果需要默认的构造函数,则 args 必须是空数组或空引用(在 Visual Basic 中为 Nothing)。

culture
用于控制类型强制的 CultureInfo 的实例。如果这是空引用(在 Visual Basic 中为 Nothing),则使用当前线程的 CultureInfo。(例如,这对于将表示 1000 的 String 转换为 Double 值是必需的,因为不同的区域性以不同的方式表示 1000。)

activationAttributes
Object 类型的数组,包含一个或多个可以参与激活的激活属性。激活属性的一个示例是:

URLAttribute(c#中Assembly CreateInstance的使用问题 CRE是什么? assembly文件夹 CRE表示什么 Backdoor.Win32.Hupigon.cre c#中 是什么意思 C#中操作磁盘驱动器 C#中DATAGRID C#中数据库问题? C#中delete使用