Удаление всех классов определенного пространства имен - PullRequest
11 голосов
/ 05 декабря 2008

Есть ли способ получить объект из определенного пространства имен? Возможно с System.Reflections? Я хочу получить все объекты типа ITestType в пространстве имен Test.TestTypes как объекты, чтобы у меня был список экземпляров TestType1, TestType2, TestType3 и так далее. Кто-нибудь может мне помочь? Я не знаю, где это искать.

1 Ответ

22 голосов
/ 05 декабря 2008

Вы можете найти все типы в сборке и найти все те типы, которые соответствуют заданному пространству имен (это действительно легко с LINQ) - но если у вас нет конкретной сборки для просмотрите, вам нужно изучить всех из возможных.

Однако, если вы ищете способ найти все живые объекты , это другое дело - и вы не можете сделать это без использования API профилировщика, насколько я осознанный. (Даже тогда это может быть трудно - я не знаю.)

Вот запрос LINQ:

public static IEnumerable<Type> GetTypesFromNamespace(Assembly assembly, 
                                               String desiredNamespace)
{
    return assembly.GetTypes()
                   .Where(type => type.Namespace == desiredNamespace);
}
...