Re[2]: Перечислить наследников
От: _Dmitry_  
Дата: 23.04.04 08:21
Оценка:
Здравствуйте, Воронков Василий, Вы писали:

ВВ>Т.е., если я правильно понимаю, задача в следующем. Есть некий тип myType и надо, допустим, найти всех его наследников в пределах сборки? Можно сделать примерно так:


ВВ>
ВВ>foreach (Type t in myType.Assembly.GetTypes())
ВВ>    if (t.IsSubclassOf(myType))
ВВ>        Console.WriteLine(t.Name);
ВВ>


Я решил искать в AppDomain'e:

Assembly* assemblies __gc[] = AppDomain::get_CurrentDomain()->GetAssemblies();
for (int i = 0; i<assemblies->get_Count(); i++)
{
    Type* types __gc[] = dynamic_cast<Assembly*>(assemblies->get_Item(i))->GetTypes();
        for (int j = 0; j<types->get_Count(); j++)
        {
            if (dynamic_cast<Type*>(types->get_Item(j))->IsSubclassOf(__typeof(AccessPermission)))
                System::Console::WriteLine(types->get_Item(j));
        }
}


Спасибо!
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.