我正在尝试找到具有特定签名的构造函数。此构造函数在当前类型中不存在,但在其父类型中存在。为了显示:

public class Base
{
    public Base()
    {

    }

    public Base(string a1, string a2, string a3)
    {
        ...
    }
}

public class Child : Base
{

}

问题是,我似乎无法找到带有 .ctor 字符串参数的 .GetConstructor ,甚至尝试例如:
typeof(Child).GetConstructor(BindingFlags.FlattenHierarchy | BindingFlags.Public | BindingFlags.Instance, null, new Type[] { typeof(string), typeof(string), typeof(string) }, null);

typeof(Child) 替换 typeof(Base) 自然是可行的。

在寻找父构造函数方面我有什么遗漏吗?

最佳答案

构造函数不是继承的,因此即使使用 FlattenHierarchy 也无法通过子代找到它们。

你必须遍历 child 才能找到它。

关于C# GetConstructor() 不返回父构造函数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12473692/

10-13 21:28