我有一个带有工厂方法的类和一个受保护的构造函数,它被定义为接受一些参数。
public class MyClass
{
protected void MyClass(int agr1, int arg2)
{
//set private backing fields for public readonly properties
}
public static MyClass From(int arg1, int arg2)
{
return new MyClass(arg1, arg2);
}
}
然而,当我使用typeof(MyClass).GetConstructors(BindingFlags.NonPublic)
时,返回的数组中的项目为零。有人看到我做错了吗?
由于
答案 0 :(得分:11)
由于您自己传递了BindingFlags
,所以如果有必要,您不能忘记包括BindingFlags.Instance
(在这种情况下,它是)。
包括它将起作用:
var flags = BindingFlags.NonPublic | BindingFlags.Instance
var ctors = typeof(MyClass).GetConstructors(flags);
<强> See it in action 强>