2010-03-19 20 views
5

¿Hay algún equivalente a la clase Registry de StructureMap en Unity?Equivalente de registro en Unity

Me gusta pensar en una capa/componente/biblioteca para configurarlo uno mismo, llenando así el contenedor. Por lo tanto, la capa "principal" solo necesitará saber sobre la clase de registro.

Respuesta

5

No, no lo hay. En nuestro proyecto actual, hemos imitado manualmente el concepto de un Registro, aunque nuestra implementación no es tan poderosa como un Registro de StructureMap.

Si todo lo que quieres es una configuración de contenedor modular, lo que podrías hacer es crear una interfaz de marcador (tal vez IRegistry) y luego hacer que tu aplicación explore las clases de IRegistry. Con Unity, puede resolver clases que aún no se han registrado en Unity, por lo que simplemente podría resolver cada implementación de IRegistry como lo encuentre. Las clases de registro podrían tomar el contenedor como un parámetro constructor y luego cada clase podría configurar el contenedor según sea necesario para esa capa/componente/biblioteca.

public interface IRegistry 
{ 
    void Configure(); 
} 

public class ServicesRegistry : IRegistry 
{ 
    public ServicesRegistry(IUnityContainer container) 
    { 
     _container = container; 
    } 

    public sub Configure() 
    { 
     // Configure container for layer 
    } 
} 

Ahora en su arranque de aplicación en algún lugar que podría tener un programa previo de aplicación que sea sabe acerca de todos sus registros o sabe cómo escanear para ellos.

+0

Sí, pensé que era el camino a seguir. Gracias. – Michael

Cuestiones relacionadas