Je comprends que je peux configurer AutoMapper de la manière suivante et lors du mappage, il doit formater toutes les dates du modèle source selon les règles définies dans IValueFormatter et définir le résultat sur le modèle mappé .AutoMapper: Utilisation de IValueFormatter sur tout le site pour des types donnés
ForSourceType<DateTime>().AddFormatter<StandardDateFormatter>();
ForSourceType<DateTime?>().AddFormatter<StandardDateFormatter>();
Je ne reçois aucun effet pour ma classe mappée avec ceci. Il ne fonctionne que quand je fais ce qui suit:
Mapper.CreateMap<Member, MemberForm>().ForMember(x => x.DateOfBirth, y => y.AddFormatter<StandardDateFormatter>());
Je délimiterai DateTime? Member.DateOfBirth à string MemberForm.DateOfBirth. Le formateur crée essentiellement une chaîne de date courte à partir de la date.
Y a-t-il quelque chose qui me manque lors de la définition du formateur par défaut pour un type donné?
Merci
public class StandardDateFormatter : IValueFormatter
{
public string FormatValue(ResolutionContext context)
{
if (context.SourceValue == null)
return null;
if (!(context.SourceValue is DateTime))
return context.SourceValue.ToNullSafeString();
return ((DateTime)context.SourceValue).ToShortDateString();
}
}
Merci pour votre aide. J'ai essayé ces exemples, mais toujours pas de chance. Je vais juste continuer à ajouter le formateur pour chaque champ. – CRice