2011-03-04 19 views
14

¿Cómo se puede agregar una instancia ya creada a un contenedor/catalogo MEF para usar al resolver Importaciones? Quiero la funcionalidad que brinda Unity con el método RegisterInstance en sus contenedores.Agregar una instancia a un contenedor MEF

+0

MEF no es un contenedor de IoC, no se debe esperar de MEF que reemplazará la unidad, ya que no está hecho para él. Puede leer al respecto: http://www.google.pl/search?sourceid=chrome&ie=UTF-8&q=mef+as+ioc – NOtherDev

+2

@A. No espero que reemplace a Unity, pero hasta ahora el proyecto llegó sin incluir otro framework de IoC y esto es lo único que necesito y no justifica agregar otro framework si es posible resolver este requerimiento con MEF. – Cornelius

+0

MEF2 es un COI completo. – stricq

Respuesta

20

Usted puede utilizar la función ComposeExportedValue para esto, así:

var container = new CompositionContainer(); 
container.ComposeExportedValue<Application>("Application", Application.Current); 
+1

Y si quiero registrarlo con un nombre también? – Cornelius

+1

La otra sobrecarga para ComposeExportedValue toma una cadena para el contractName. Actualizado mi ejemplo. – alexn

+1

¿Alguien sabe cómo hacer esto en System.Composition? (La versión PCL). – tofutim

Cuestiones relacionadas