problema extraño - Estoy tratando de establecer una relación entre una enumeración y una cadena, utilizando AutoMapper:¿Puede AutoMapper Map entre un tipo de valor (Enum) y un tipo de referencia? (Cadena)
Mapper.CreateMap<MyEnum, string>()
.ForMember(dest => dest, opt => opt.MapFrom(src => src.ToString()));
No se preocupe que im 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 referencia de objeto error, cuando estoy haciendo simplemente la configuración de la asignación.
Teniendo en cuenta esto funciona:
string enumString = MyEnum.MyEnumType.ToString();
No puedo ver por qué la configuración de mi AutoMapper no lo hace.
Puede AutoMapper manejar esto, estoy haciendo algo mal, o se trata de un error con AutoMapper?
¿Alguna idea?
EDITAR
También he intentado usar un dispositivo de resolución personalizado:
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. :(
Ahh -.. que tiene sentido porque yo estaba haciendo '.ForMember', pero en realidad no im tratando de mapear el miembro, im tratando de trazar todo el objeto funciona muy bien - gracias 1 y aceptado – RPM1984
realmente una gran solución.. ..! – imdadhusen