如何使用assembly.CreateInstance调用非Default构造函数

Lis*_*isa 10 c# reflection winforms

我需要在使用assembly.CreateInstance时调用非默认构造函数.怎么样?

Igo*_*aka 24

Activator.CreateInstance是一个比Assembly.CreateInstance用于这些事情更友好的API :

var type = Type.GetType("MyNamespace.MyClass, MyAssembly");
Activator.CreateInstance(type, constructorParam1, constructorParam2);
Run Code Online (Sandbox Code Playgroud)

  • 糟糕,我在参数 arg 上的错误。我已经多次使用 CreateInstance,并且总是将 args 包装在一个对象 [] 中。(我第一次使用它时,它可能没有出现在我的智能感知中。)。它以我一直在做的方式工作,所以我一直认为它是正确的 - 没有意识到我这样做很困难。 (2认同)

C. *_* 76 2

试试这个重载:

public Object CreateInstance (
    string typeName,
    bool ignoreCase,
    BindingFlags bindingAttr,
    Binder binder,
    Object[] args,
    CultureInfo culture,
    Object[] activationAttributes
)
Run Code Online (Sandbox Code Playgroud)

它有一个args参数。