Я работаю над приложением, которое загружает плагины при запуске из подкаталога, и в настоящее время я делаю это, используя отражение, чтобы перебирать типы каждой сборки и находить открытые классы, реализующие интерфейс IPluginModule.
Поскольку Reflection включает в себя снижение производительности, и я ожидаю, что через некоторое время появятся несколько плагинов, я подумал, было бы полезно определить пользовательский атрибут, применяемый на уровне сборки, который можно было бы проверить перед итерацией по типам. (возможно, около десятка типов в сборке, в том числе 1 разработчик IPluginModule).
Атрибут, если он присутствует, может затем предоставить метод для возврата необходимых типов или экземпляров, и итерации по типам будут только механизмом возврата. Хранение информации о типе в файле конфигурации не вариант.
Повысит ли это производительность или это просто не имеет значения по сравнению со временем, которое фактически требуется для загрузки сборки из хранилища? Кроме того, будет ли это использование уместным для атрибута вообще?