带有Ninject的AutoMapper
我一直在尝试设置AutoMapper来通过Ninject实例化所有对象。 我在global.asax文件中有以下代码
Mapper.Configuration.ConstructServicesUsing(x => kernel.Get(x));
作为一个例子,我有以下映射
Mapper.CreateMap();
但是,这似乎不起作用。 我得到一个’IndexViewModel’没有默认构造函数的错误。
我可以通过显式告诉automapper在映射中使用ninject来使映射器工作。
Mapper.CreateMap().ConstructUsingServiceLocator();
但是,我宁愿不必为每个映射执行此操作。 我错过了什么吗?
只需在初始化代码中的某处创建一个为您执行此操作的函数
void CreateMapWithServiceLocator() { Mapper.CreateMap().ConstructUsingServiceLocator(); }