我有一个抽象基类,我希望动态列出所有子类(当前已加载)。但是,我无法找到此示例。我想要类似的东西:
$subclasses = [AbstractRule].get-subclasses
任何提示表示赞赏。
我有一个抽象基类,我希望动态列出所有子类(当前已加载)。但是,我无法找到此示例。我想要类似的东西:
$subclasses = [AbstractRule].get-subclasses
任何提示表示赞赏。
枚举当前应用程序域中的所有类型,然后使用Type.IsSubclassOf()
查找您感兴趣的类型:
$superType = [AbstractRule]
$subTypes = [AppDomain]::CurrentDomain.GetAssemblies().GetTypes() |Where {$_.IsSubclassOf($superType)}
这还将包括使用 PowerShell 类定义的自定义派生类型(如果存在)
[AbstractRule]
如果您怀疑所有子类都在同一个中,您还可以将搜索限制为仅包含 的程序集:
$subTypes = $superType.Assembly.GetTypes() |Where {$_.IsSubclassOf($superType)}