Estoy usando Autofac para manejar la inyección de dependencias en mi aplicación. Sin embargo, tengo un componente que hace algo de magia de reflexión en tiempo de ejecución y no sé en tiempo de compilación qué dependencias necesitará.Uso de Autofac como localizador de servicios
Por lo general, me gustaría tener este componente de referencia el contenedor directamente y resolver lo que quiera. Sin embargo, la clase que está creando una instancia de esta clase no tiene ninguna referencia al contenedor.
Efectivamente, mi componente tiene una dependencia de Autofac. Preferiría un acoplamiento más flexible, pero eso no parece ser una opción aquí. ¿Hay alguna manera de preguntar (en los argumentos del constructor, o usar la inyección de propiedad, o lo que sea) Autofac para darme una referencia al contenedor en mi constructor? ¿O hay una manera más limpia de que Autofac me proporcione un objeto localizador de servicios mágicos que pueda resolver cualquier cosa?
Sin embargo, sería interesante ver qué "magia" está haciendo el componente. Tal vez hay otras formas que el patrón de localizador de servicio. ¿Podrías actualizar con algún código? –
Puedo describirlo bastante bien. A medida que los mensajes llegan a través de un bus, el código determina de qué tipo el mensaje está utilizando algunos metadatos, y luego construye dicho tipo. Luego necesita encontrar todos los implementadores de 'IConsume' (donde 'type' es el tipo de los metadatos) usando Autofac y luego llamar al método Consume en él. –
Te refieres como: http://kozmic.pl/2010/03/11/advanced-castle-windsor-ndash-generic-type-factories-auto-release-and-more/ –