Подтвердить что ты не робот

Как настроить Auto mapper в проекте библиотеки классов?

Я использую автоматическое сопоставление в первый раз.

Я работаю над приложением С#, и я хочу использовать auto mapper.

(Я просто хочу знать, как его использовать, поэтому у меня нет приложения asp.net ни приложения MVC.)

У меня есть три библиотеки классов.

enter image description here

Я хочу записать процесс передачи в проект службы.

Итак, я хочу знать, как и где следует настраивать Auto Mapper?

4b9b3361

Ответ 1

Вы можете разместить конфигурацию в любом месте:

public class AutoMapperConfiguration
{
    public static void Configure()
    {
        Mapper.Initialize(x =>
            {
                x.AddProfile<MyMappings>();              
            });
    }
}

 public class MyMappings : Profile
{
    public override string ProfileName
    {
        get { return "MyMappings"; }
    }

    protected override void Configure()
    {
    ......
    }

Но он должен быть вызван приложением, используя библиотеки в какой-то момент:

void Application_Start()
    {               
        AutoMapperConfiguration.Configure();
    }

Ответ 2

Я рекомендую использовать основанный на экземпляре подход с использованием IMapper:

var config = new MapperConfiguration(cfg => {
    cfg.AddProfile<AppProfile>();
    cfg.CreateMap<Source, Dest>();
});

IMapper mapper = config.CreateMapper();
// or
IMapper mapper = new Mapper(config);
var dest = mapper.Map<Source, Dest>(new Source());

Таким образом, никто из вашей библиотеки не должен вызывать какой-либо метод настройки. Вы можете определить MapperConfiguration и создать в нем сборщик внутри библиотеки классов.