如何在没有 DI 的情况下使用 AutoMapper 9 进行静态实现?

Kam*_*il 3 c# automapping automapper asp.net-core

我想创建 AutoMapper 的静态实现而不需要依赖注入。我正在使用 ASP.NET CORE 2.2 和 AutoMapper 9。我发现了类似的主题:

如何在Asp.Net Web Api 2中使用AutoMapper 9.0.0而不需要依赖注入?

有没有更简单的方法来创建无需 DI 的静态实现?

Joh*_*ica 10

您可以简单地从映射器配置构建映射器。AutoMapper文档中提供了一个示例,我在此处复制了该示例:

// use cfg to configure AutoMapper
var config = new MapperConfiguration(cfg => cfg.CreateMap<Order, OrderDto>()); 

var mapper = config.CreateMapper();
// or
var mapper = new Mapper(config);
OrderDto dto = mapper.Map<OrderDto>(order);
Run Code Online (Sandbox Code Playgroud)

static然后,您可以简单地在项目中的某个位置设置一个字段/属性来保存mapper.