type long bool c# enums automapper value-type reference-type

c# - long - ¿Puede AutoMapper Map entre un tipo de valor(Enum) y un tipo de referencia?(cuerda)



type bool c# (1)

Problema extraño: estoy tratando de mapear entre una enumeración y una cadena , usando AutoMapper:

Mapper.CreateMap<MyEnum, string>() .ForMember(dest => dest, opt => opt.MapFrom(src => src.ToString()));

No se preocupe si estoy usando .ToString() , en realidad estoy usando un método de extensión en la propia enumeración ( .ToDescription() ), pero lo he mantenido simple por el bien de la pregunta.

Lo anterior arroja un error de referencia de objeto , cuando estoy simplemente configurando el mapeo.

Teniendo en cuenta esto funciona:

string enumString = MyEnum.MyEnumType.ToString();

No puedo ver por qué mi configuración de AutoMapper no.

¿Puede manejar AutoMapper esto, estoy haciendo algo mal, o es esto un error con AutoMapper?

¿Algunas ideas?

EDITAR

También traté de usar una resolución personalizada:

Mapper.CreateMap<MyEnum, string>() .ForMember(dest => dest, opt => opt.ResolveUsing<MyEnumResolver>()); public class MyEnumResolver: ValueResolver<MyEnum,string> { protected override string ResolveCore(MyEnum source) { return source.ToString(); } }

Mismo error en la misma línea. :(


Para mapear entre dos tipos en los que está tomando el control de toda la asignación, use ConvertUsing:

Mapper.CreateMap<MyEnum, string>().ConvertUsing(src => src.ToString());

Todos los otros métodos suponen que está mapeando a miembros individuales en el tipo de destino.