相关疑难解决方法(0)

仅用于声明的接口的Type.GetInterfaces()

首先,有很多这样的问题,也许有些OP甚至都在问这个完全相同的问题.问题是这些问题的答案(接受与否)都没有回答这个问题,至少没有我能找到的问题.

如何确定一个类直接声明的接口,而不是由父类或声明的接口继承的接口?

例如

interface I {}
interface W : I {}
class C : W {}
class D : C, I {}
class E : D {}
Run Code Online (Sandbox Code Playgroud)

结果:

  1. C 声明 W
  2. D 声明 I
  3. E 宣布无

可接受的解决方案可能要求接口至少具有一种方法.

如果您认为这是不可能的,请注意不要犯这个错误,这实际上可以做到.

InterfaceMap处理许多案件,但不是所有的(我给由下面不可解的例子InterfaceMap).我有一个想法,但不知道如何实现它,是反编译类的字节码,看看声明什么,因为ILSpy等工具正确识别每个案例!如果你喜欢这个想法,请给我一个链接到这个领域的更多信息.

我希望有些人会建议我清理我的设计.如果这不是您的论点,那么帖子的其余部分与您无关.

我项目的一部分目的是跟踪给定类型的潜在代码路径(在运行时).为了以编程方式确定将在目标类型上调用哪个方法,而不实际调用该方法或创建目标类型的实例,知道目标类型的声明接口是确定性地解决此问题的必要条件."不,"你说?考虑:

interface I { int Foo(); }
class C : I { public int Foo() { return 1; } }
class D : C { public new int Foo() { return 2; …
Run Code Online (Sandbox Code Playgroud)

c# reflection

5
推荐指数
1
解决办法
3611
查看次数

标签 统计

c# ×1

reflection ×1