Aktualizuję swój projekt, aby korzystać z AutoMapper 4.2, i mam problemy z przełamaniem zmian. Podczas gdy I wydaje się, że rozwiązał te zmiany, nie jestem całkowicie przekonany, że zrobiłem to w najbardziej odpowiedni sposób.AutoMapper 4.2 i Ninject 3.2
W starym kodzie mam klasę NinjectConfiguration
i AutoMapperConfiguration
, z których każda jest ładowana przez program WebActivator. W nowej wersji AutoMapperConfiguration
odpada, a ja zamiast przykład MapperConfiguration
bezpośrednio w klasie NinjectConfiguration
gdzie Wiązania są dzieje tak:
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);
}
Tak, jest to właściwy sposób wiązania AutoMapper 4,2 użyciu Ninject? Wydaje się, że działa do tej pory, ale chcę się tylko upewnić.
Więc zamiast "InRequestScope()" powinien on "InSingletonScope()"? W przeciwnym razie wiązania są w porządku? – Gup3rSuR4c
@Alex Przepraszamy, zapomniałem przykładowy kod, dodaliśmy go. –
Świetnie, to rozwiązało mój problem. –