Мне нужно глобально обрабатывать преобразование из enum в простой тип и наоборот.
Например, с одной стороны, я получил
public class Domain
{
public SimpleTypes Type { get; set; }
}
с другой стороны, я получил
public class Storage
{
public int TypeId { get; set; }
public SimpleType Type { get; set; }
}
Во многих случаях SimpleType
- очень простой объект
public class SimpleType
{
public int Id { get; set; }
public string Name { set; set; }
}
Так что использование enum SimpleTypes
имеет смысл
public enum SimpleTypes
{
None = 0,
TypeA = 1,
TypeB = 2
}
Следующие сопоставления работают в обоих направлениях
cfg.CreateMap<SimpleTypes, SimpleType>()
.ForMember(
d => d.Id,
opts => opts.MapFrom(s => (int)s))
.ForMember(
d => d.Name,
opts => opts.MapFrom(s => s.ToString()))
.ReverseMap();
cfg.CreateMap<Domain, Storage>()
.ForMember(
d => d.TypeId,
opts => opts.MapFrom(s => s.Type))
.ReverseMap();
У меня есть много подобных случаев в моем приложении.
Итак, как обрабатывать это преобразование в общем?