Mapper 不包含 Initialize AutoMapper C# 的定义

Mapper does not contain a definition for Initialize AutoMapper C#

我在我的 asp.net C# 项目中实现了 Auto Mapper,但出现错误:

Mapper does not contain a definition for Initialize

我试过这个例子Link Here

我已经粘贴了我的代码:

namespace NewsWeb.Web.Infrastructure
{
    public class AutomapperWebProfile:Profile
    {
        public AutomapperWebProfile()
        {
            CreateMap<DistrictDTO, District>().ReverseMap();
        }

        public static void Run()
        {
            Mapper.Initialize(a =>
            {
                a.AddProfile<AutomapperWebProfile>();
            });
        }
    }
}

在我的 Golbal.asax.cs 文件中:

 AutomapperWebProfile.Run();

错误图片:

方法 Mapper.Initialize 自版本 v9.0.0 (doc), you need to use MapperConfiguration instead (doc) 起已过时。

var config = new MapperConfiguration(cfg => {
    cfg.AddProfile<AutomapperWebProfile>();
});

var mapper = config.CreateMapper();
// or
var mapper = new Mapper(config);

在 Golbal.asax 中使用静态方法初始化映射器不是一个灵活的解决方案。我建议直接在自定义映射器中创建一个配置 class.

public interface IFooMapper 
{   
    Foo Map(Bar bar); 
}

public class FooMapper : IFooMapper
{
    private readonly IMapper mapper;

    public FooMapper()
    {
        var config = new MapperConfiguration(cfg =>
        {
            cfg.AddProfile<FooProfile>();
        });

        mapper = config.CreateMapper();
    }

    public Foo Map(Bar bar) => mapper.Map<Foo>(bar);
}