dependency-injection - 将服务注入(inject) AutoMapper 目标类

标签 dependency-injection structuremap automapper

假设我有一个使用 AutoMapper 映射的源和目标类。
目的地有一个记录器服务注入(inject)到构造函数中。

但是,我不知道如何通过 StructureMap 将服务注入(inject)到构造函数中?

我尝试了以下方法:

Mapper.Initialize(m =>
 {                
    m.ConstructServicesUsing(ObjectFactory.GetInstance);
 });

这并没有阻止我在映射调用中遇到异常,我猜是因为服务没有被正确注入(inject)。

我还尝试了以下方法:
CreateMap<Source, Dest>()
 .ConstructUsing(x=> ObjectFactory.GetInstance<ILoggerService>());

但我得到错误:无法将 Lamda 表达式转换为委托(delegate)类型 ,但我见过的所有例子都使用这种方法?

最佳答案

传递给 ConstructUsing 的 lambda 必须返回目标类型的实例。所以在你的情况下,你会想要这样做:

CreateMap<Source, Dest>()  
.ConstructUsing(x=> ObjectFactory.GetInstance<Dest>());

假设您正确设置了 StructureMap,它应该创建 Dest 对象并为您注入(inject) ILoggerService。

关于dependency-injection - 将服务注入(inject) AutoMapper 目标类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5938704/

相关文章:

c# - 如何使用 ninject 在 HttpModule 中注入(inject)依赖项?

android - Unresolved 对 Koin 的 sharedViewModel() 的引用

java - 带有新初始化类变量的 Mockito InjectMocks

c# - 如何使用具有 "greedy"构造函数的 Scan 将 StructureMap 与通用未封闭类型一起使用

c# - Automapper.Mapper.CreateMap无法解析

c# - AutoMapper:如何在展平时使用字符串参数 MapFrom

c# - Windows 8.1 统一项目中的 Automapper 启动异常

java - Java Collections API 上的依赖注入(inject)

c# - 有没有办法按顺序执行一个实现类

asp.net-mvc-3 - ASP.NET MVC 注入(inject) Http/Request/Controller 上下文