Как мне выбрать все методы из заданного пространства имен? - PullRequest
0 голосов
/ 02 января 2009

Я хочу, чтобы все Method-ClassName из пространства имен

как у меня system.windows.Forms

когда в визуальной студии мы устанавливаем system.windows.Forms. будет предложено поле всех связанных методов, классов, перечислений extra

Мне нужно получить то же самое, как я могу сделать это в C #

Ответы [ 2 ]

5 голосов
/ 02 января 2009

Для начала, в пространстве имен нет методов - только типы.

Чтобы получить все типы из одного пространства имен в конкретной сборке, вы можете использовать (при условии .NET 3.5 для бита LINQ) Assembly.GetTypes :

var types = assembly.GetTypes().Where(type => type.Namespace == desiredNamespace);

Однако типы могут быть распределены по нескольким сборкам.

Получив тип, вы можете использовать Type.GetMethods для получения доступных методов. Используйте соответствующие BindingFlags для получения статических / экземпляров, открытых / закрытых методов и т. Д.

Если это не поможет, уточните вопрос.

0 голосов
/ 02 января 2009

Этот вид функциональности называется "отражением".

Например,

http://www.codersource.net/published/view/291/reflection_in.aspx (который я нашел в Google для «отражения» и «C #») упоминает подходящие методы .NET API, которые вы вызываете из C #.

...