我可以通过编程方式确定接口要求/依赖项/继承吗?
有没有一种方法(反射或其他方式)以编程方式确定 IList 接口需要 ICollection,而 ICollection 又需要 IEnumerable?
我正在开发 反射库 并遇到了一个可以使用此信息的场景,但找不到方法获得它。编译器和 IDE(显然)都知道这种关系,因此它必须以某种方式可用。
我希望得到不涉及 IL 或源代码解析的建议,这两者都不适合我的用例。
Is there a way (reflection or otherwise) to programatically determine that the IList interface requires ICollection, which in turn requires IEnumerable?
I'm working on a reflection library and came across a scenario where I could use this information, but found no way to obtain it. Both the compiler and the IDE (obviously) know the relation, so it must be available somehow.
I'm hoping for suggestions that don't involve IL or source parsing, neither of which really is an option for my use case.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您可以使用
Type.GetInterfaces
发现此信息。You can use
Type.GetInterfaces
to discover this information.下面是 powershell 中的示例:
c# 中的等效项是:
typeof(IList).GetInterfaces()
。Examples below in powershell:
The equivalent in c# would be:
typeof(IList).GetInterfaces()
.