En un nuevo proyecto WPF (VS2010) estoy usando Unity 2 por primera vez. En este proyecto yo uso la siguiente estructura:Cómo resolver con Unity en una solución multiproyecto
Solución
proyecto WPF
Clase Biblioteca1
Clase Biblioteca2 Biblioteca
Clase 3 ....
Registro de la Se realizan diferentes tipos utilizando Unity en Proyecto WPF utilizando el siguiente fragmento:
IUnityContainer container = new UnityContainer()
.RegisterType<IObjectContext, ObjectContextAdapter>()
.RegisterType<IConnectionStringProvider, ConnectionStringProvider>()
.RegisterType(typeof(IRepository<>), typeof(Repository<>));
Digamos ahora que me gustaría obtener el Repositorio <Orders
> inyectado constructor resuelto en clase Biblioteca1. ¡Al parecer, el contenedor no se conoce en los otros proyectos!
¿Cómo haré eso?
Digamos que tengo un cuadro de diálogo en Class Library 1 llamado "ManageUser". ¿Cómo obtiene ManageUser la instancia del contenedor declarado en el proyecto WPF? –
@Ryan - ¿Hay alguna razón para usar una interfaz en un proyecto común? ¿Por qué no hacer que la clase Registry y el método Configure sean estáticos y llamarlo así: 'RegistryForSomeClassLibrary.Configure (container); RegistryForAnotherClassLibrary.Configure (contenedor); 'He probado esto y funciona. ¿Me estoy perdiendo de algo? – Shevek
@Shevek, eso funciona bien. Solía resolver mis registros utilizando la reflexión, pero me rendí en eso hace un tiempo. Ahora llamo explícitamente a 'Configure()' en cada registro. – Ryan