Как настроить Auto mapper в проекте библиотеки классов?
Я использую автоматическое сопоставление в первый раз.
Я работаю над приложением С#, и я хочу использовать auto mapper.
(Я просто хочу знать, как его использовать, поэтому у меня нет приложения asp.net ни приложения MVC.)
У меня есть три библиотеки классов.
![enter image description here]()
Я хочу записать процесс передачи в проект службы.
Итак, я хочу знать, как и где следует настраивать Auto Mapper?
Ответы
Ответ 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
и создать в нем сборщик внутри библиотеки классов.