c#中Assembly CreateInstance的使用问题
现在所有一个程序,需要使用C#的反射动态调用DLL文件,我目前只会使用DockContentFormLoad=(DockContent)Assembly.Load(an)...
现在所有一个程序,需要使用C#的反射动态调用DLL文件,我目前只会使用DockContent FormLoad = (DockContent)Assembly.Load(an).CreateInstance(fn)【an是程序集的名称,fn是程序集中命名空间的名称】调用程序。
但是,这样只能调用构造函数中没有参数的程序,可是如果构造参数中有函数(例如public baidu(string baidu)),调用的时候想要赋予构在函数中的参数参数值(baidu("baidu")),调用这个有参数的构造函数,而不是默认的没有参数的。
这个应该怎么解决呢? 展开
但是,这样只能调用构造函数中没有参数的程序,可是如果构造参数中有函数(例如public baidu(string baidu)),调用的时候想要赋予构在函数中的参数参数值(baidu("baidu")),调用这个有参数的构造函数,而不是默认的没有参数的。
这个应该怎么解决呢? 展开
1个回答
展开全部
使用这个重载函数: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(http://hostname/appname/objectURI)
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(http://hostname/appname/objectURI)
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询