1

我有一个抽象基类,我希望动态列出所有子类(当前已加载)。但是,我无法找到此示例。我想要类似的东西:

 $subclasses = [AbstractRule].get-subclasses

任何提示表示赞赏。

4

1 回答 1

3

枚举当前应用程序域中的所有类型,然后使用Type.IsSubclassOf()查找您感兴趣的类型:

$superType = [AbstractRule]
$subTypes = [AppDomain]::CurrentDomain.GetAssemblies().GetTypes() |Where {$_.IsSubclassOf($superType)}

这还将包括使用 PowerShell 类定义的自定义派生类型(如果存在)


[AbstractRule]如果您怀疑所有子类都在同一个中,您还可以将搜索限制为仅包含 的程序集:

$subTypes = $superType.Assembly.GetTypes() |Where {$_.IsSubclassOf($superType)}
于 2020-04-24T17:19:20.240 回答