2014-11-26 15 views
5

Moje pytanie jest dość proste, ale niestety nie znalazłem jeszcze odpowiedzi.W jaki sposób MEF zarządza instancją wyeksportowanej części, która jest klasą wewnętrzną zespołu zewnętrznego?

Korzystanie MEF, mogę podać kilka wewnętrznych eksportu i importu w zespole biblioteki klasy tak:

[Export] 
internal class SomeExport 
{ } 

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

Moja CompositionContainer znajduje się w głównym zespole EXE, ale jakoś udaje mu się instancję obiektu SomeExport wewnątrz zespół biblioteki klas, więc mogę go użyć. Zwykle moje wewnętrzne biblioteki klas nie powinny być dostępne z zespołu EXE, ale w jakiś sposób powstają moje wystąpienia.

Jak to działa?

+1

Klasy wewnętrzne są dostępne przez odbicie. –

Odpowiedz

6

MEF zazwyczaj używa odbicia, aby odkryć części i utworzyć ich instancję. Odbicie nie jest ograniczone przez widoczność w postaci internal lub nawet private.

Powiązane problemy