Managed Extensibility Framework (MEF)
Eintrag zuletzt aktualisiert am: 07.05.2015
Generisches
Dependency Injection Framework für Add-In-Programmierung
Namespace:
System.ComponentModel.Composition
Alternative für
Mono:
Mono.Addins
Ab
.NET 4.0,
Open Source auch schon für
.NET 3.5 (
http://www.codeplex.com/MEF)
Auch für Silverlight
Es gab schon frühere Ansätze für Erweiterbarkeit in .NET:
MAF bietet gegenüber MEF allerdings den Vorteil, dass man in
MAF die Erweiterungen besser von der Hauptanwendung isolieren kann.
MAF-Erweiterungen können dafür in eigenen
Application Domains laufen.
Details
Icontract
Klasse
Contract
Client
- Refenziert Icontract und System.ComponentModel.Composition
- [Import] Icontract
- Nachladen aus Katalog: Assembly-Katalog, Directory-Katalog, Type-Katalog, usw.
- CompositionContainer
- Im Standard werden Add-Ins in Default App Domain geladen
Optionen
Lazy<Icontract>: Instanzen erst beim Zugriff erzeugt
[ImportMany]: Mehrere Assemblies mit gleichem Typ laden
Add-Ins können
Metadaten in Form von
Attributen bereitstellen über das Add-In