19 thoughts on “MEF Teil 1 – Grundlagen, Imports und Exports”

  1. Sehr guter Beitrag Steffan!
    Setzte MEF auch schon seit einiger Zeit ein. Doch leider habe ich noch nicht die Zeit gehabt mich eingehend damit zu beschäftigen.
    Dein Beitrag hat mir noch einige Kniffs und Tricks gezeigt.
    Danke und weiter so!

    Eine Frage habe ich da noch.
    Zerstört die Klasse Lazy auch das Objekt wieder?

    Grüße

  2. Ich habe Komponenten in bereits kompilierten Assemblies die bestimmte Schnittstellen implementieren, die aber kein Export-Attribute (und auch sonst keinen Verweis auf MEF haben).
    Kann ich diese trotzdem mit MEF benutzen? Wie?

    1. Hi,
      eine Methode, wie solche Assemblies direkt mit MEF verwendet werden können, ist mir nicht bekannt. Ich würde versuchen,um die Assemblies einen Wrapper zu bauen,

  3. Ich habe als Anfänger versucht Deine Anleitung durchzuführen. Leider scheitere ich schon beim Erstellen des Projekts, da die Namespaces bei Program.cs und beim Interface gleich sind.
    Beim erstellen der Klassenbibliothek für das Interface kann ich das Projekt beim erstellen erst nach dem es angelegt wurde umstellen.

    Wenn ich es jetzt versuche es aus der IDE auszuführen, funktioniert es nicht. Bei Deinem Beispiel schon. Ich versuche den Fehler herauszufinden, allerdings finde ich nichts.

    Wohl wird ein Ordner public angelegt aus dem ich die CarHost.exe aufrufen kann und es auch funktioniert ABER es fehlt die CarContract.dll.

    Was mache ich beim erstellen eines neuen Projekts falsch?

    1. Hallo Alex,
      du solltest beachten, das die einzelnen Beispiele aus mehreren Assemblies bestehen. Am besten schaust du dir die fertigen Beispiele an. Die Links zu den fertigen Visual Studio Solutions findest du ebenfalls in dem Post.

      Stefan

  4. Hallo,
    das ist wirklich ein super artikel, selten sowas klares und verstaendliches gelesen.
    ich habe nur eine frage, es ist ja auch moeglich dass ich nicht in allen dll wie hier die methode startengine aufrufen moechte. gibt es eine moeglichkeit das lazy object auf
    eine eigene klasse zu casten oder in einem struct abzulegen, dass ich dann komfortabel
    spaeter je nach bedarf auf eines der jeweiligen objecten aus den dlls zugreifen kann?
    Oder wie macht man das am geschicktesten?

    viele gruesse,
    michael

    1. Hallo Michael,
      du musst natürlich nicht immer von allen AddIns die Methoden aufrufen. Der Host holt sich immer das AddIn, welches benötigt wird. Die Metadaten lassen sich hierbei recht gut als Filter einsetzen. Nur von diesem AddIn werden die Methoden vom Host genutzt.
      Stefan

  5. So alt und immer noch Wunderbar! Ich nutze MEF schon lange für WPF View Kopplung. Nun muss ich mal tiefer rein, um Plungins zu erstellen.
    Christoph

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: