首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何获取接口成员列表

如何获取接口成员列表
EN

Stack Overflow用户
提问于 2012-03-10 05:30:22
回答 5查看 3K关注 0票数 5

有没有办法获得接口成员的列表?我知道System.Reflection.MemberInfo,但它包含了对象中的所有内容,而不仅仅是某个接口。

这是程序,我不确定如何获得接口,因为它不是我写的,但它是Ascom标准(http://ascom-standards.org)的一部分。

代码语言:javascript
复制
public static void Test1()
{
    Console.WriteLine("mark1"); // this shows up...
    var type = typeof(Ascom.Interface.ITelescope);
    var members = type.GetMembers();
    Console.WriteLine(members.Count); // gives 0
    foreach (var member in members)
    {
        Console.WriteLine(member.Name); //nothing from here
    }
    Console.WriteLine("mark4"); // ...as well as this
}
EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2012-09-13 21:18:02

如果是COM接口,则应禁用"Embed Interop Types",否则它只会在程序集中插入使用的成员。我猜你没有在程序集中使用来自该接口的任何方法/属性,这就是为什么它们永远不会被插入,所以你可以用反射列出它们。(Thx OWO)

票数 2
EN

Stack Overflow用户

发布于 2012-03-10 05:32:01

来自MSDN:

代码语言:javascript
复制
typeof(IList).GetMembers()

获取当前类型的成员(属性、方法、字段、事件等)。

票数 8
EN

Stack Overflow用户

发布于 2012-03-10 05:32:46

您只需要请求接口类型的成员

代码语言:javascript
复制
var type = typeof(IConvertible);
var members = type.GetMembers();

foreach (var member in members)
{
    Console.WriteLine(member.Name); // ToInt32 etc
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9641267

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档