Estoy usando mvc.net con StructureMap para escanear y registrar todos los repositorios y servicios por mí. Ahora quiero registrarme y almacenar en caché por Singleton. ¿Como lo puedo hacer?¿Cómo puedo configurar Structuremap para escanear automáticamente el tipo en ensamblado y caché por Singleton?
IContainer container = new Container(x => {
// Register Repositories and Services
x.Scan(y => {
y.AssemblyContainingType<SomeRepository>();
y.AssemblyContainingType<SomeService>();
y.IncludeNamespaceContainingType<SomeRepository>();
y.IncludeNamespaceContainingType<SomeService>();
});
// Register Controllers
x.Scan(y => {
y.TheCallingAssembly();
y.AddAllTypesOf<IController>().NameBy(type => type.Name.Replace("Controller", ""));
});
});
+1 BTW, no es necesario llamar a.AddAllTypesOf(); en Escanear() como SingletonConvention.Process() registrará el tipo (s). –
ozczecho
¿Por qué necesito esas 3 líneas en 'Scan'? ¿Cuál es la diferencia entre 'a.With (new SingletonConvention());' y 'a.AddAllTypesOf ();'? ¿Son esos dos realmente necesarios? Y si tengo otra interfaz, ¿necesito usar ambas líneas nuevamente? –
tyron
excesivamente detallado, pero funcionó como un campeón. Realmente creo que si la declaración debería ser utilizada, pero no voy a cambiar la API. Después de decir que no voy a cambiar la API, todavía no significa que no puedo hacerlo mejor –