Перечислите классы пространства имен. NET в powershell? - PullRequest
0 голосов
/ 04 марта 2020

Я пытаюсь перечислить классы пространства имен. NET.

Например, пространство имен [System.IO]. Я пытаюсь перечислить его классы, такие как [System.IO.Path], File, Directory, StreamReader и т. Д. c.

. Здесь, когда я непосредственно набираю [System.IO] на консоли, я получаю сообщение об ошибке, что тип не может быть найден. Get-Member не помогает, потому что в нем перечислены методы и свойства класса.

Кто-нибудь знает, как это сделать?

1 Ответ

2 голосов
/ 04 марта 2020

После вашего комментария 'C# очень связан с. NET Я также приму C# решения ', у меня есть быстрое и грязное C# решение для перечисления всех типов в System.IO пространство имен.

Приведенный ниже код можно легко адаптировать для любого пространства имен, но учтите, что работает только на загруженных сборках в текущем домене приложения :

List<Type> types;
types = new List<Type>();

foreach (var ass in AppDomain.CurrentDomain.GetAssemblies())
    types.AddRange(ass.GetTypes().Where(x => x.Namespace == "System.IO"));

// Do something with the list of types

Список типов из незагруженных сборок намного сложнее. Вы можете перечислить все сборки в GA C или из указанных папок, но найти каждый отдельный тип практически невозможно, учитывая, что любая сборка (то есть та, которую я могу сделать сейчас) может добавить к System.IO.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...