C# 将AutoMapper从v3升级到v6时IMemberConfiguration表达式失败
我正在尝试将代码从aotumapperv3更新到v6,但有一个助手方法使用IMemberConfigurationExpression时遇到了问题C# 将AutoMapper从v3升级到v6时IMemberConfiguration表达式失败,c#,.net,automapper,C#,.net,Automapper,我正在尝试将代码从aotumapperv3更新到v6,但有一个助手方法使用IMemberConfigurationExpression时遇到了问题 private void TreatEmptyStringsAsNull<TSource>(IMemberConfigurationExpression<TSource> expression) { expression.Condition(ctx => ctx.SourceType !
private void TreatEmptyStringsAsNull<TSource>(IMemberConfigurationExpression<TSource> expression)
{
expression.Condition(ctx => ctx.SourceType != typeof(string) || (string)ctx.SourceValue != string.Empty);
}
private void TreatEmptyStringsAsNull(IMemberConfiguration表达式)
{
expression.Condition(ctx=>ctx.SourceType!=typeof(string)| |(string)ctx.SourceValue!=string.Empty);
}
此方法由以下函数调用:
config.CreateMap().ForAllMembers(treatEmptyStringsNull)
我收到的错误消息是“使用泛型类型IMemberConfigurationExpression需要三个参数
我尝试的修复:
private void TreatEmptyStringsAsNull<TSource, TDestination, TMember>(IMemberConfigurationExpression<TSource, TDestination, TMember> expression)
{
expression.Condition(ctx => ctx.SourceType != typeof(string) || (string)ctx.SourceValue != string.Empty);
}
private void TreatEmptyStringsAsNull(IMemberConfiguration表达式)
{
expression.Condition(ctx=>ctx.SourceType!=typeof(string)| |(string)ctx.SourceValue!=string.Empty);
}
但随后出现了一个新错误“TSource不包含“SourceType”的定义,并且找不到接受“TSource”类型的第一个参数的扩展方法“SourceType”
我应该如何更新此帮助器方法以使其工作
#更新:
我做了以下更改,不再导致任何错误:
private static void TreatEmptyStringsAsNull<TSource, TDestination, TMember>(IMemberConfigurationExpression<TSource,TDestination, TMember> expression)
{
expression.Condition(ctx => ctx.GetType() != typeof(string) || ctx.ToString() != string.Empty);
}
private static void TreatEmptyStringsAsNull(IMemberConfiguration表达式)
{
expression.Condition(ctx=>ctx.GetType()!=typeof(string)| | ctx.ToString()!=string.Empty);
}
私有静态无效处理EmptyStringsNull(IMemberConfiguration表达式)
{
expression.Condition(ctx=>ctx.GetType()!=typeof(string)| | ctx.ToString()!=string.Empty);
}
这起作用了
private static void TreatEmptyStringsAsNull<TSource, TDestination, TMember>(IMemberConfigurationExpression<TSource,TDestination, TMember> expression)
{
expression.Condition(ctx => ctx.GetType() != typeof(string) || ctx.ToString() != string.Empty);
}