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:
- Visual Studio for Applications (VSA) alias Script for .NET (Namensraum Microsoft.Vsa) – seit 1.1 und in .NET 2.0 schon wieder als "obsolete" gekennzeichnet
- Managed Add-In Framework (MAF) (Namensraum System.AddIn) – seit .NET 3.5. Diese Biblio-thek ist weiterhin vorhanden, das in .NET 4.0 eingeführte MEF ist aber leichtgewichtiger und einfa-cher.
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
ContractClient
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