Как получить список классов проекта?
От: IlyaLevchenko  
Дата: 03.06.07 21:45
Оценка:
Как получить список классов проекта, реализующих некий интерфейс и не являющихся абстрактными?

Потом этот список будет передаваться в метод
public void Register(Type newClass)
Re: Как получить список классов проекта?
От: Delight  
Дата: 04.06.07 02:31
Оценка:
Здравствуйте, IlyaLevchenko, Вы писали:

IL>Как получить список классов проекта, реализующих некий интерфейс и не являющихся абстрактными?


IL>Потом этот список будет передаваться в метод

IL>public void Register(Type newClass)

Проекта или сборки (assembly)?
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[2]: Как получить список классов проекта?
От: IlyaLevchenko  
Дата: 04.06.07 05:49
Оценка:
IL>>Как получить список классов проекта, реализующих некий интерфейс и не являющихся абстрактными?
D>Проекта или сборки (assembly)?

Чукча не читатель... Скорее всего проекта. В общем, есть определенный namespace и хочется выдернуть список его классов, которые реализуют некий интерфейс.
Re[3]: Как получить список классов проекта?
От: Nikolkos  
Дата: 04.06.07 06:09
Оценка:
Здравствуйте, IlyaLevchenko, Вы писали:

IL>>>Как получить список классов проекта, реализующих некий интерфейс и не являющихся абстрактными?

D>>Проекта или сборки (assembly)?

IL>Чукча не читатель... Скорее всего проекта. В общем, есть определенный namespace и хочется выдернуть список его классов, которые реализуют некий интерфейс.


Я думаю, что скорее всего из сборки. Примерно как-то так.

Assembly assembly = Assembly.GetExecutingAssembly(); // или загрузить сборку...

foreach (Type type in assembly.GetExportedTypes()) {
  if (!type.IsAbstract && typeof(MyInterface).IsAssignableFrom(type)) {
    Console.WriteLine(type.Name);
}
Re[3]: Как получить список классов проекта?
От: Delight  
Дата: 04.06.07 06:15
Оценка:
Здравствуйте, IlyaLevchenko, Вы писали:

D>>Проекта или сборки (assembly)?


IL>Чукча не читатель... Скорее всего проекта. В общем, есть определенный namespace и хочется выдернуть список его классов, которые реализуют некий интерфейс.


Ну тогда брать файл проекта, вытаскивать ссылки на файлы, парсить их, резолвить зависимости и т.д.

Если же всё-таки сборки, то cм. Assembly.GetTypes(), Type.IsAssignableFrom(), Type.Namespace, Type.IsAbstract
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[4]: Спасибо
От: IlyaLevchenko  
Дата: 04.06.07 06:30
Оценка:
спасибо!
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.