【发布时间】:2017-05-12 17:43:36
【问题描述】:
我有一个 A 类:
public class A: ParentA, IA
{
public void func()
{
}
public void ConsumableMethod()
{
}
public void MethodA()
{
}
public void ConsumableMethodFromIB()
{
}
}
public interface IA : IB
{
void ConsumableMethod();
}
public interface IB
{
void ConsumableMethodFromIB();
}
public abstract class ParentA
{
public abstract void MethodA();
public void MethodB()
{
}
}
我想要接口 IA 中可用的方法列表。为此我正在做这样的事情:
var methods = typeof(IA).GetMethods(BindingFlags.Instance | BindingFlags.Static |
BindingFlags.Public | BindingFlags.NonPublic);
通过在 A 上调用 GetMethods,我得到了仅在 A 中声明的方法列表(即 func),在父抽象类中实现的方法(即 MethodB)并实现了接口方法(即ConsumableMethod & ConsumableMethodFromIB)。
我想要的是IA 中可用的方法(包括来自 IB 的方法)。我目前仅通过在 IA 上调用 GetMethods 获得“ConsumableMethod”。我怎样才能得到'ConsumableMethodFromIB'?
【问题讨论】:
-
抱歉,我无法理解您到底得到/没有得到什么。您能否更新您的问题,说出
IA是什么,methods返回什么以及您希望它返回什么?另外,您在说什么父抽象类?你的问题中没有。而且,接口不能实现另一个接口。它可以扩展它,但不能实现。 -
你不能得到未实现的方法,因为在这些类中没有关于它们的元信息。