У меня проблемы с внедрением AutoMapper в приложение ASP.NET MVC 2 с использованием Ninject.Я использовал пост Джимми Богарда о AutoMapper и тип конфигурации StructureMap в качестве руководства.
public class AutoMapperModule : NinjectModule
{
public override void Load()
{
Bind<ITypeMapFactory>().To<TypeMapFactory>();
Bind<Configuration>().ToSelf().InSingletonScope().WithConstructorArgument("mapper", MapperRegistry.AllMappers);
Bind<IConfiguration>().To<Configuration>();
Bind<IConfigurationProvider>().To<Configuration>();
Bind<IMappingEngine>().To<MappingEngine>();
}
}
Ninject выдает исключение при разрешении Configuration
.
Ошибкаактивация IObjectMapper Соответствующие привязки недоступны, а тип не является самосвязываемым.Путь активации:
3) Внедрение зависимости IObjectMapper в преобразователи параметров конструктора типа Configuration
Обновление
Теперь это работает с использованием следующей привязки:
Bind<ITypeMapFactory>().To<TypeMapFactory>();
Bind<Configuration>().ToConstant(new Configuration(Kernel.Get<ITypeMapFactory>(), MapperRegistry.AllMappers())).InSingletonScope();
Bind<IConfiguration>().ToMethod(c => c.Kernel.Get<Configuration>());
Bind<IConfigurationProvider>().ToMethod(c => c.Kernel.Get<Configuration>());
Bind<IMappingEngine>().To<MappingEngine>();
Я опубликовал модуль на GitHub. AutoMapper.Ninject .Больше информации в моем блоге: http://binaryspeakeasy.com/2010/09/automapper-ninject/