registro automático castillo de Windsor de dos ensamblado diferente?
-
20-09-2019 - |
Pregunta
container.Register(
AllTypes.Pick().FromAssembly(typeof (UserRepository).Assembly)
.WithService.FirstInterface());
Actualmente el código anterior funcionará bien si la interfaz son también en el mismo conjunto, pero va a explotar si IUserRepository es de un montaje diferente.
Es el registro automático de dos conjuntos diferentes posibles? Me estoy perdiendo algo aquí?
Solución
Sí, es posible definir un registro automático en la interfaz se define en un montaje diferente. Lo hacemos, aunque utilizamos una sintaxis ligeramente diferente:
container.Register(AllTypes
.FromAssemblyContaining<ConfigurationService>()
.Where(t => t.Name.EndsWith("Service", StringComparison.Ordinal))
.WithService
.FirstInterface()
.Configure(reg => reg.LifeStyle.PerWebRequest));
No puedo decir si el diferente uso de la API hace una diferencia, pero yo supongo que no lo hace. Más bien, yo supongo que la causa del error experimenta es que tal vez el conjunto que contiene la interfaz no está disponible.
Comprobar si la fusión puede cargar el tipo de aplicación que en absoluto.