2014-11-26 2 views
5

Meine Frage ist ziemlich einfach, aber leider konnte ich noch keine Antwort finden.Wie verwaltet MEF ein exportiertes Teil, das eine interne Klasse einer externen Baugruppe ist?

MEF benutzen, kann ich einige interne Exporte und Importe in einer Klassenbibliothek Versammlung wie die angeben:

[Export] 
internal class SomeExport 
{ } 

[ModuleExport(typeof(SomeModule))] 
internal class SomeModule : IModule 
{ 
    [ImportingConstructor] 
    internal SomeModule(SomeExport instance) 
    { } 
} 

Mein CompositionContainer ist in der Haupt EXE Baugruppe befindet, aber irgendwie schafft es die SomeExport Objekt in instanziiert die Klassenbibliothek Assembly, damit ich es verwenden kann. Normalerweise sollten meine internen Klassenbibliothekstypen nicht von der EXE-Assembly aus zugänglich sein, aber irgendwie erhalte ich meine Instanzen.

Wie funktioniert es?

+1

Interne Klassen sind durch Reflexion zugänglich. –

Antwort

6

MEF verwendet typischerweise Reflektion, um Teile zu erkennen und zu instanziieren. Die Reflexion ist nicht auf internal oder sogar private Sichtbarkeit beschränkt.

Verwandte Themen