MEF如何管理实例化外部组件的内部类的导出部件?

dym*_*oid 8 .net c# mef composition .net-assembly

我的问题很简单,但遗憾的是我找不到任何答案.

使用MEF,我可以在类库程序集中指定一些内部导出和导入,如下所示:

[Export]
internal class SomeExport
{ }

[ModuleExport(typeof(SomeModule))]
internal class SomeModule : IModule
{ 
    [ImportingConstructor]
    internal SomeModule(SomeExport instance)
    { }
}
Run Code Online (Sandbox Code Playgroud)

我的CompositionContainer位于主EXE程序集中,但不知何故它设法SomeExport在类库程序集中实例化对象,以便我可以使用它.通常,我的内部类库类型不应该从EXE程序集中访问,但不知何故我创建了我的实例.

它是如何工作的?

Wim*_*nen 9

MEF通常使用反射来发现部件并实例化它们.反思不受限制internal甚至private可见度.