Как загрузить пространство имен Системные классы? - PullRequest
2 голосов
/ 27 марта 2012

У меня небольшой вопрос.Я нашел это в интернете:

Type t = typeof(MyClass);
MethodInfo[] mi = t.GetMethods();

Есть ли способ сделать то же самое с пространствами имен?Или есть какой-то другой способ получить все классы с именами и экземплярами System.Type?Давным-давно я нашел кое-что о перечислении библиотеки.Пожалуйста, кто-нибудь, помогите мне.

Ответы [ 2 ]

2 голосов
/ 27 марта 2012

Вы можете получить все классы из сборки mscorlib, используя этот небольшой взлом: typeof(string).Assembly.GetTypes().Вы можете дополнительно отфильтровать его по свойству FullName или Namespace.

2 голосов
/ 27 марта 2012

Если вы хотите получить все классы в определенном пространстве имен, вы можете сделать что-то вроде этого:

var types = from type
            in AppDomain.CurrentDomain.GetAssemblies().SelectMany(a => a.GetTypes())
            where type.Namespace == "System"
            select type;

Это будет искать во всех загруженных сборках любой тип в пространстве имен System.Конечно, вы можете изменить «System» на что угодно, например «System.IO».

...