我正在尝试将我们的代码从aotumapper v3更新到v6,并且遇到使用IMemberConfigurationExpression的一个帮助器方法时遇到问题。
private void TreatEmptyStringsAsNull<TSource>(IMemberConfigurationExpression<TSource> expression)
{
expression.Condition(ctx => ctx.SourceType != typeof(string) || (string)ctx.SourceValue != string.Empty);
}
这个方法被调用: 。config.CreateMap()ForAllMembers(TreatEmptyStringsAsNull);
我收到的错误消息是“使用泛型类型IMemberConfigurationExpression需要三个参数。
我的尝试修复:
private void TreatEmptyStringsAsNull<TSource, TDestination, TMember>(IMemberConfigurationExpression<TSource, TDestination, TMember> expression)
{
expression.Condition(ctx => ctx.SourceType != typeof(string) || (string)ctx.SourceValue != string.Empty);
}
但后来我收到一个新错误“TSource不包含'SourceType'的定义,并且没有扩展方法'SourceType'接受类型'TSource'的第一个参数。”
如何更新此辅助方法以使其正常工作?
#UPDATE: 我做了以下更改,不再导致任何错误:
private static void TreatEmptyStringsAsNull<TSource, TDestination, TMember>(IMemberConfigurationExpression<TSource,TDestination, TMember> expression)
{
expression.Condition(ctx => ctx.GetType() != typeof(string) || ctx.ToString() != string.Empty);
}
答案 0 :(得分:1)
private static void TreatEmptyStringsAsNull<TSource, TDestination, TMember>(IMemberConfigurationExpression<TSource,TDestination, TMember> expression)
{
expression.Condition(ctx => ctx.GetType() != typeof(string) || ctx.ToString() != string.Empty);
}
这很有用。