我的问题非常简单,但遗憾的是我找不到任何答案。
使用MEF,我可以在类库程序集中指定一些内部导出和导入:
[Export]
internal class SomeExport
{ }
[ModuleExport(typeof(SomeModule))]
internal class SomeModule : IModule
{
[ImportingConstructor]
internal SomeModule(SomeExport instance)
{ }
}
我的CompositionContainer位于主EXE程序集中,但不知何故它设法在类库程序集中实例化SomeExport
对象,以便我可以使用它。通常,我的内部类库类型不应该从EXE程序集中访问,但不知何故我创建了我的实例。
它是如何运作的?
答案 0 :(得分:9)
MEF通常使用反射来发现部件并实例化它们。反射不受internal
甚至private
可见性的限制。