Sto aggiornando un mio progetto per utilizzare AutoMapper 4.2 e sto eseguendo delle modifiche. Mentre I sembra aver risolto detti cambiamenti, non sono completamente convinto di averlo fatto nel modo più appropriato.AutoMapper 4.2 e Ninject 3.2
Nel vecchio codice, ho una classe NinjectConfiguration
e una classe AutoMapperConfiguration
caricate da WebActivator. Nella nuova versione del AutoMapperConfiguration
gocce fuori e io invece un esempio MapperConfiguration
direttamente nella classe NinjectConfiguration
in cui le associazioni stanno accadendo, in questo modo:
private static void RegisterServices(
IKernel kernel) {
var profiles = AssemblyHelper.GetTypesInheriting<Profile>(Assembly.Load("???.Mappings")).Select(Activator.CreateInstance).Cast<Profile>();
var config = new MapperConfiguration(
c => {
foreach (var profile in profiles) {
c.AddProfile(profile);
}
});
kernel.Bind<MapperConfiguration>().ToMethod(
c =>
config).InSingletonScope();
kernel.Bind<IMapper>().ToMethod(
c =>
config.CreateMapper()).InRequestScope();
RegisterModules(kernel);
}
Quindi, è questo il modo appropriato di legare automapper 4.2 utilizzando Ninject? Sembra che funzioni fino ad ora, ma voglio essere sicuro.
Quindi piuttosto che 'InRequestScope()' dovrebbe 'InSingletonScope()'? Altrimenti le associazioni sono ok? – Gup3rSuR4c
@Alex Scusa l'esempio del codice dimenticato, aggiunto. –
Ottimo, questo ha risolto il mio problema. –