我刚开始使用StructureMap,之前曾使用过Spring.Net。我喜欢DefaultConventionScanner和扫描程序集的能力,并使用约定优于配置来查找类。但似乎存在一个限制,即实现接口的类必须是公共的,而我们喜欢将接口公开,并将我们的实现保留在程序集内部。
有没有办法要求DefaultConventionScanner查找内部类?
答案 0 :(得分:10)
不,实际上类应公开的限制适用于所有StructureMap - 而不仅仅是常规扫描程序。如果您使用InternalsVisibleTo属性,可以手动使用StructureMap注册内部类型,但是它没有得到很好的支持或记录。您将无法创建注册内部类型的ITypeScanner(如DefaultConventionScanner),因为AssemblyScanner仅公开导出的类型。