Я использую AutoMapper на своем веб-сайте ASP.NET MVC для сопоставления объектов моей базы данных с объектами ViewModel, и я пытаюсь использовать несколько профилей для сопоставления одних и тех же типов, но с другой логикой. У меня была идея сделать это, прочитав пост в блоге Мэтта , где он говорит:
Действительно ключевой частью является профиль конфигурации AutoMapper. Вы можете группировать конфигурации с профилями. Возможно, в одном профиле вы форматируете даты одним способом, в другом профиле вы форматируете даты другим способом. Я просто использую один профиль здесь.
Итак, я создал профиль для одного дела:
public class MyProfile : Profile
{
protected override string ProfileName
{
get
{
return "MyProfile";
}
}
protected override void Configure()
{
CreateMap<DateTime, String>().ConvertUsing<StringFromDateTimeTypeConverter>();
}
}
public class StringFromDateTimeTypeConverter : ITypeConverter<DateTime, String>
{
public string Convert(DateTime source)
{
return source.ToString("dd/mm/yyyy", CultureInfo.InvariantCulture);
}
}
И еще один для другого случая:
public class MyProfile2 : Profile
{
protected override string ProfileName
{
get
{
return "MyProfile2";
}
}
protected override void Configure()
{
CreateMap<DateTime, String>().ConvertUsing<AnotherStringFromDateTimeTypeConverter>();
}
}
public class AnotherStringFromDateTimeTypeConverter : ITypeConverter<DateTime, String>
{
public string Convert(DateTime source)
{
return source.ToString("mm - yyyy", CultureInfo.InvariantCulture);
}
}
Однако я не могу найти никакой перегрузки метода Mapper.Map<>()
для указания профиля. Я также посмотрел на Configuration
объект без удачи.
Последний зарегистрированный профиль всегда имеет приоритет.
Есть ли способ использовать профили для этой цели?