Garip sorun - i AutoMapper kullanarak, bir enum ve dize arasında haritasına çalışıyorum: .ToString()
kullanarak bu im ÜzülmeyinDeğer Türü (Enum) ve Referans Türü Arasında Otomatik Eşleme Haritasını Can? (String)
Mapper.CreateMap<MyEnum, string>()
.ForMember(dest => dest, opt => opt.MapFrom(src => src.ToString()));
, gerçekte i kullanıyorum enum üzerinde bir uzantı yöntemi (.ToDescription()
), ancak soru uğruna basit tuttum.
Yukarıdakiler, yalnızca eşlemeyi ayarlarken yaptığınız bir nesne referansı hatasını atıyor.
bu işleri düşünüldüğünde: my AutoMapper yapılandırma yapmaz neden göremiyorum
string enumString = MyEnum.MyEnumType.ToString();
.
AutoMapper bunu halledebilir, yanlış bir şey mi yapıyorum, yoksa bu AutoMapper ile bir hata mı?
Herhangi bir fikrin var mı?
DÜZENLEME Ben de bir özel çözümleyicinizi kullanarak çalıştı
: Aynı hat üzerinde
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();
}
}
aynı hata. :(
Eğer kullanım ConvertUsing tüm haritalama kontrolünü alıyorsun iki tür arasında haritalanması için
Ahh - bu mantıklı. Çünkü .ForMember'i yapıyorum, ama aslında üyeyi haritalamaya çalışmıyorum, tüm nesneyi eşleştirmeye çalışıyorum. Harika çalışıyor - teşekkürler! +1 ve kabul edildi – RPM1984
Gerçekten harika bir çözüm. ..! – imdadhusen