File tree Expand file tree Collapse file tree 2 files changed +10
-1
lines changed
src/AutoMapper.Extensions.ExpressionMapping Expand file tree Collapse file tree 2 files changed +10
-1
lines changed Original file line number Diff line number Diff line change @@ -173,7 +173,7 @@ private Expression VisitAllParametersExpression<T>(Expression<T> expression)
173173 from t in expression . Parameters
174174 let sourceParamType = t . Type
175175 from destParamType in _destSubTypes . Where ( dt => dt != sourceParamType )
176- let a = destParamType . IsGenericType ( ) ? destParamType . GetTypeInfo ( ) . GenericTypeArguments [ 0 ] : destParamType
176+ let a = destParamType . IsEnumerableType ( out var itemType ) ? itemType : destParamType
177177 let typeMap = _configurationProvider . ResolveTypeMap ( a , sourceParamType )
178178 where typeMap != null
179179 let oldParam = t
Original file line number Diff line number Diff line change @@ -171,5 +171,14 @@ public static bool IsQueryableType(this Type type)
171171
172172 public static Type GetGenericElementType ( this Type type )
173173 => type . HasElementType ? type . GetElementType ( ) : type . GetTypeInfo ( ) . GenericTypeArguments [ 0 ] ;
174+
175+ public static bool IsEnumerableType ( this Type type , out Type itemType )
176+ {
177+ itemType = type . GetInterfaces ( )
178+ . FirstOrDefault ( t => t . GetGenericTypeDefinitionIfGeneric ( ) == typeof ( IEnumerable < > ) )
179+ ? . GetGenericArguments ( ) [ 0 ] ;
180+
181+ return itemType != null ;
182+ }
174183 }
175184}
You can’t perform that action at this time.
0 commit comments