我可以在powershell中动态地找到一个类的所有子类吗?

问题描述 投票:0回答:1

我有一个抽象的基类,我想动态地得到一个所有子类的列表(当前正在加载)。然而,我一直没有找到这样的例子。我希望有类似于这样的东西。

 $subclasses = [AbstractRule].get-subclasses

任何提示都很感激

powershell metaprogramming
1个回答
3
投票

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

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

这也将包括使用PowerShell类定义的自定义派生类型(如果有的话)。


您也可以将搜索范围限制在包含有 [AbstractRule],如果你怀疑所有的子类都在同一。

$subTypes = $superType.Assembly.GetTypes() |Where {$_.IsSubclassOf($superType)}
© www.soinside.com 2019 - 2024. All rights reserved.