我可以在 powershell 中动态找到 class 的所有子 classes
Can I dynamically find all subclasses of a class in powershell
我有一个抽象基类,我想要一个包含所有动态子类(当前已加载)的列表。但是,我还没有找到这方面的样本。我想要类似于:
$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)}
我有一个抽象基类,我想要一个包含所有动态子类(当前已加载)的列表。但是,我还没有找到这方面的样本。我想要类似于:
$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)}