首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何获取在CodeRush中实现接口的类?

如何获取在CodeRush中实现接口的类?
EN

Stack Overflow用户
提问于 2011-07-01 03:15:30
回答 2查看 217关注 0票数 3

我试图编写一个方法,该方法返回实现接口的类的列表,但做不到。

一些方法,如

代码语言:javascript
复制
  public List<Class> GetImplementedClasses(Interface Interface1)
   {
        . . . 
   }

我尝试使用interface1.AllChild和许多其他尝试。他们都没有给出任何结果。

是否可以使用DXCore API编写这样的方法?

示例:

如果我传递Interface1,我应该从GetImplementedClasses方法中获得Class1和Class2。

提前谢谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-07-01 03:40:27

Intrerface类中有一个"GetDescendants“方法,它可能对您的任务很有用。代码如下所示:

代码语言:javascript
复制
public List<Class> GetImplementedClasses(Interface Interface1)
{
  List<Class> result = new List<Class>();
  if (Interface1 != null)
  {
    ITypeElement[] descendants = Interface1.GetDescendants();
    foreach (ITypeElement descendant in descendants)
    {
      if (!descendant.InReferencedAssembly)
      {
        Class classDescendant = descendant.ToLanguageElement() as Class;
        if (classDescendant != null)
          result.Add(classDescendant);
      }
    }
  }
  return result;
}
票数 4
EN

Stack Overflow用户

发布于 2011-07-01 04:41:17

我对dxcore不太确定,但在常规的C#中,我编写了an extension method,它可以获得部署中所有可用的类型;您可以这样使用它:

代码语言:javascript
复制
Assembly.GetExecutingAssembly().GetAvailableTypes(
    typeFilter: t => 
        (t != typeof(interfaceType)) 
        && 
        typeof(interfaceType).IsAssignableFrom(t));
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6539913

复制
相关文章

相似问题

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