Automapper говорит, что Mapper.Map устарел, глобальные сопоставления?

Я определил в своем проекте глобальную конфигурацию Automapper, которая позволит мне использоватьMapper.Map<targetType>(sourceObject); в моем коде. (См. Мою конфигурацию ниже.)

Я обновил пакет NuGet и вижу сообщение, что Mapper.Map устарел / устарел. Я вернулся к Automapper на GitHub и увидел примеры, подобные этому:

[Test]
public void Example()
{
    var config = new MapperConfiguration(cfg =>
    {
        cfg.CreateMap<Source1, SubDest1>().FixRootDest();
        cfg.CreateMap<Source2, SubDest2>().FixRootDest();
    });

    config.AssertConfigurationIsValid();

    var mapper = config.CreateMapper();

    var subDest1 = mapper.Map<Source1, SubDest1>(new Source1 {SomeValue = "Value1"});
    var subDest2 = mapper.Map<Source2, SubDest2>(new Source2 {SomeOtherValue = "Value2"});

    subDest1.SomeValue.ShouldEqual("Value1");
    subDest2.SomeOtherValue.ShouldEqual("Value2");
}

Я собираюсь создать конфигурацию в КАЖДОМ методе, который использует сопоставление?

Моя текущая глобальная конфигурация:

namespace PublicationSystem.App_Start
{
    public class AutoMapperConfig
    {
        public static void CreateMaps()
        {
            CreateProjectMaps();
        }

        private static void CreateProjectMaps()
        {
            Mapper.CreateMap<Project, ProjectCreate>();
            Mapper.CreateMap<Project, ProjectSelectable>();
            //...
        }
    }
}

ОБНОВИТЬ: Благодаря некоторой тренировке Скотта Чемберлена я создал такой класс:

    public class MkpMapperProfile : AutoMapper.Profile
    {
        protected override void Configure() 
        {
            this.CreateMap<Project, ProjectCreate>();

            this.CreateMap<Project, ProjectSelectable>();

            this.CreateMap<Project, ProjectDetails>();

            // Many Many other maps
        }
    }

Я думаю, что у меня должно быть 'MapperConfiguration' в моем классе BaseController. Я начал делать что-то вроде этого:

public partial class BaseController : Controller
{

    private MapperConfiguration mapConfig;

    public BaseController()
    {
        db = new MkpContext();
        SetMapperConfig();
    }

    private void SetMapperConfig()
    {
        mapConfig = new MapperConfiguration(cfg =>
            {
                cfg.AddProfile<MkpMapperProfile>();
            });
    }

    public BaseController(MapperConfiguration config)
    {
        db = new MkpContext();
        this.mapConfig = config;
    }
}

Я на правильном пути?

Ответы на вопрос(5)

Ваш ответ на вопрос