有没有办法获得接口成员的列表?我知道System.Reflection.MemberInfo,但它包含了对象中的所有内容,而不仅仅是某个接口。
这是程序,我不确定如何获得接口,因为它不是我写的,但它是Ascom标准(http://ascom-standards.org)的一部分。
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
}发布于 2012-09-13 21:18:02
如果是COM接口,则应禁用"Embed Interop Types",否则它只会在程序集中插入使用的成员。我猜你没有在程序集中使用来自该接口的任何方法/属性,这就是为什么它们永远不会被插入,所以你可以用反射列出它们。(Thx OWO)
发布于 2012-03-10 05:32:01
来自MSDN:
typeof(IList).GetMembers()获取当前类型的成员(属性、方法、字段、事件等)。
发布于 2012-03-10 05:32:46
您只需要请求接口类型的成员
var type = typeof(IConvertible);
var members = type.GetMembers();
foreach (var member in members)
{
Console.WriteLine(member.Name); // ToInt32 etc
}https://stackoverflow.com/questions/9641267
复制相似问题