我有一个类,它有一个工厂方法和一个定义为接受几个参数的受保护构造函数。
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)
时,返回的数组中有零项。有人知道我哪里做错了吗?
谢谢
既然您自己正在通过BindingFlags
,那么您一定不要忘记在必要时包括BindingFlags.Instance
(在这种情况下,它是)。
包含它将工作:
var flags = BindingFlags.NonPublic | BindingFlags.Instance
var ctors = typeof(MyClass).GetConstructors(flags);
查看效果