c# - AutoMapper 与 Ninject

标签 c# asp.net-mvc-3 ninject ioc-container 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();
} 

关于c# - AutoMapper 与 Ninject,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10559026/

相关文章:

asp.net-mvc-3 - 带有 SqlCeMembership 的 Asp.net 网站管理工具

json - Asp.Net MVC 3 JSON 模型绑定(bind)不起作用

c# - 如何处理 MVVM 应用程序中的构造函数过度注入(inject)

c# - 何时使用单例、 transient 和使用 Ninject 和 MongoDB 的请求

c# - 如何使用 C# 构建操作系统

c# - 在 wcf 服务上返回 html 格式而不是 json 或 xml

c# - 实现线程安全的队列或列表时,返回Count前是否需要加锁?

c# - Encog 框架非数字示例,文本分类

c# - jquery 中的 insidehtml 等效项不起作用

c# - 带有开放泛型的 Ninject 上下文绑定(bind)