Вывод всех классов определенного пространства имен

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

Ответ 1

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

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

Здесь запрос LINQ:

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