none
反射如何调用带参数的构造函数 RRS feed

  • 问题

  • Assembly asm = null;
    asm = Assembly.Load(LoadFile(strPath));
    string strAssemblyName = asm.GetName().Name;
    (ISystemintegration)asm.CreateInstance(strAssemblyName + ".SystemIntegration");
    这个是调用没参数的构造函数。 如果是带参数的构造函数,怎么调用。
    2010年9月8日 9:53

答案

  • 使用对应的重载方法

     

    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)

    • 已标记为答案 male110 2010年9月9日 7:03
    2010年9月8日 10:41