Home > Managed Extensibility Framework > MEF Teil 1 – Grundlagen, Imports und Exports
  1. jupiter
    June 13, 2011 at 11:13 am

    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. June 13, 2011 at 9:54 pm

    Hi,
    um den Lifecycle der Objekte geht es im 3. Teil. Ich rechne damit, dass ich den Beitrag bis Ende KW24 posten werde.

    Stefan

  3. Gerd
    July 4, 2011 at 12:11 pm

    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?

    • July 27, 2011 at 9:54 pm

      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,

      • November 18, 2011 at 5:12 pm

        Und es geht doch. ExportProvider ist das Stichwort. Hierzu wird es in Kürze einen entsprechenden Artikel geben.

  4. Alex
    June 29, 2012 at 11:20 am

    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?

    • July 2, 2012 at 12:04 pm

      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

  5. Alex
    November 2, 2012 at 12:43 pm

    Richtig klasse Beitrag, ich freu mich auf die restlichen neun 🙂

  6. stephan
    February 1, 2013 at 9:27 pm

    Guter Artikel welcher den Einstieg in MEF einfach macht:-) Danke!

  7. michael
    July 15, 2013 at 2:51 pm

    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

    • July 23, 2013 at 7:27 am

      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

  1. August 30, 2011 at 7:34 pm
  2. December 6, 2011 at 9:18 pm
  3. December 6, 2011 at 9:23 pm
  4. January 21, 2013 at 11:33 pm
  5. October 13, 2014 at 9:50 pm

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 )

Twitter picture

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

Facebook photo

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

Google+ photo

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

Connecting to %s

%d bloggers like this: