У меня есть исходный объект, который похож на это:
private class SourceObject {
public Enum1 EnumProp1 { get; set; }
public Enum2 EnumProp2 { get; set; }
}
Перечисления украшены пользовательским [Description]
атрибут, который обеспечивает строковое представление, и у меня есть дополнительный метод .GetDescription()
это возвращает его. Как я отображаю эти перечислимые свойства с помощью того расширения?
Я пытаюсь отобразиться на объект как это:
private class DestinationObject {
public string Enum1Description { get; set; }
public string Enum2Description { get; set; }
}
Я думаю, что пользовательское средство форматирования является моим лучшим выбором, но я не могу выяснить, как добавить средство форматирования и указать который поле отобразиться от одновременно.
Ах, идиотский момент. Не осознавал, что могу комбинировать ForMember () и AddFormatter () следующим образом:
Mapper.CreateMap<SourceObject, DestinationObject>()
.ForMember(x => x.Enum1Desc, opt => opt.MapFrom(x => x.EnumProp1))
.ForMember(x => x.Enum1Desc, opt => opt.AddFormatter<EnumDescriptionFormatter>())
.ForMember(x => x.Enum2Desc, opt => opt.MapFrom(x => x.EnumProp2))
.ForMember(x => x.Enum2Desc, opt => opt.AddFormatter<EnumDescriptionFormatter>());
Проблема решена.