Перечислите все типы в текущем домене приложения, затем используйте Type.IsSubclassOf()
, чтобы найти интересующий вас:
$superType = [AbstractRule]
$subTypes = [AppDomain]::CurrentDomain.GetAssemblies().GetTypes() |Where {$_.IsSubclassOf($superType)}
Это также будет включать определенные производные типы, определенные используя классы PowerShell (если есть)
Вы также можете ограничить свой поиск только сборкой, содержащей [AbstractRule]
, если вы подозреваете, что все подклассы находятся в одном и том же:
$subTypes = $superType.Assembly.GetTypes() |Where {$_.IsSubclassOf($superType)}