我试图编写一个方法,该方法返回实现接口的类的列表,但做不到。
一些方法,如
public List<Class> GetImplementedClasses(Interface Interface1)
{
. . .
}我尝试使用interface1.AllChild和许多其他尝试。他们都没有给出任何结果。
是否可以使用DXCore API编写这样的方法?
示例:

如果我传递Interface1,我应该从GetImplementedClasses方法中获得Class1和Class2。
提前谢谢。
发布于 2011-07-01 03:40:27
Intrerface类中有一个"GetDescendants“方法,它可能对您的任务很有用。代码如下所示:
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;
}发布于 2011-07-01 04:41:17
我对dxcore不太确定,但在常规的C#中,我编写了an extension method,它可以获得部署中所有可用的类型;您可以这样使用它:
Assembly.GetExecutingAssembly().GetAvailableTypes(
typeFilter: t =>
(t != typeof(interfaceType))
&&
typeof(interfaceType).IsAssignableFrom(t));https://stackoverflow.com/questions/6539913
复制相似问题