我正在尝试编写接收自变量列表并获取匹配Ctor的ConstructorInfo的代码。

方法签名为ConstructorInfo GetConstructorInfo(Type type, object[] args)

我创建了一个可以使用的类:

public class ClassWithParamsInCtor
{
    public ClassWithParamsInCtor(params int[] parameters)
    {

    }
}


使用Activator类,我可以创建该对象的实例:

ClassWithParamsInCtor myclass = Activator.CreateInstance(typeof(ClassWithParamsInCtor), new object[] { 1,2 }) as ClassWithParamsInCtor; \\returns a valid instance of the class;


但是,当我尝试获取ConstructorInfo时,出现了一个问题,以下返回null:

ConstructorInfo ctorInfo = typeof(ClassWithParamsInCtor).GetConstructor(new Type[] { typeof(int), typeof(int) }); \\returns null


在这种情况下如何获取ConstructorInfo?

最佳答案

params int[]int[]的语法糖,您需要使用typeof(int[])

typeof(ClassWithParamsInCtor).GetConstructor(new Type[] { typeof(int[]) });

关于c# - 如何使用参数获取Ctor的ConstructorInfo,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/43233610/

10-12 05:12