2009-09-29 2 views
5

Я только что начал использовать StructureMap, ранее работав с Spring.Net. Мне нравится DefaultConventionScanner и возможность сканирования сборок и использования соглашения по конфигурации для поиска классов. Но, как представляется, существует ограничение, что классы, реализующие интерфейсы, должны быть общедоступными, тогда как нам нравится игнорировать интерфейсы public и наши реализации, встроенные в сборку.Can Structuremap DefaultConventionScanner найти непубличные классы

Есть ли способ попросить DefaultConventionScanner найти внутренние классы?

ответ

9

Нет, и на самом деле ограничение, которое классы должны публиковать, относится ко всей структуре StructureMap - не только к условным сканерам. You может вручную регистрировать внутренние типы с помощью StructureMap, если вы используете атрибут InternalsVisibleTo, но он не поддерживается или не документирован. Вы не сможете сделать ITypeScanner (например, DefaultConventionScanner), который регистрирует внутренние типы, потому что AssemblyScanner предоставляет только экспортированные типы.

+0

Отмечая, что этому ответу несколько лет ... это все еще так? –

+0

Да, это все еще так. «За кулисами StructureMap использует метод Assembly.GetExportedTypes() из .Net CLR для поиска типов и ...» - http://structuremap.github.io/registration/auto-registration-and-conventions/ –

Смежные вопросы