J'essaie de mettre à jour notre code d'aotumapper v3 vers v6 et d'avoir des problèmes avec une méthode d'assistance qui utilise IMemberConfigurationExpression.IMemberConfigurationExpression échouant lors de la mise à niveau d'AutoMapper de v3 à v6
private void TreatEmptyStringsAsNull<TSource>(IMemberConfigurationExpression<TSource> expression)
{
expression.Condition(ctx => ctx.SourceType != typeof(string) || (string)ctx.SourceValue != string.Empty);
}
Et cette méthode est appelée par:. config.CreateMap() ForAllMembers (TreatEmptyStringsAsNull);
Le message d'erreur que j'ai reçu est que « à l'aide IMemberConfigurationExpression de type générique nécessite trois arguments
Ma tentative de solution.
private void TreatEmptyStringsAsNull<TSource, TDestination, TMember>(IMemberConfigurationExpression<TSource, TDestination, TMember> expression)
{
expression.Condition(ctx => ctx.SourceType != typeof(string) || (string)ctx.SourceValue != string.Empty);
}
Mais je suis une nouvelle erreur » TSource ne contient pas de définition 'SourceType' et aucune méthode d'extension 'SourceType' acceptant un premier argument de type 'TSource' n'a pu être trouvé. "
Comment mettre à jour cette méthode d'aide pour la faire fonctionner?
#update: Je ne les modifications suivantes qui ne provoque plus une erreur:
private static void TreatEmptyStringsAsNull<TSource, TDestination, TMember>(IMemberConfigurationExpression<TSource,TDestination, TMember> expression)
{
expression.Condition(ctx => ctx.GetType() != typeof(string) || ctx.ToString() != string.Empty);
}