微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

c# – 使用Ninject的AutoMapper

我一直在尝试设置AutoMapper来通过Ninject实例化所有对象.
我在global.asax文件中有以下代码

Mapper.Configuration.ConstructServicesUsing(x => kernel.Get(x));

作为一个例子,我有以下映射

Mapper.CreateMap<TestModel,Indexviewmodel>();

但是,这似乎不起作用.我得到一个’Indexviewmodel’没有认构造函数错误.

我可以通过显式告诉automapper在映射中使用ninject来使映射器工作.

Mapper.CreateMap<TestModel,Indexviewmodel>().ConstructUsingServiceLocator();

但是,我宁愿不必为每个映射执行此操作.我错过了什么吗?

解决方法

只需在初始化代码中的某处创建一个为您执行此操作的函数

void CreateMapWithServiceLocator<T1,T2>()
{
     Mapper.CreateMap<T1,T2>().ConstructUsingServiceLocator();
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐