/// <summary> /// Registers Select Projection Expression Factory. /// </summary> /// <typeparam name="TSource">Source param type.</typeparam> /// <typeparam name="TDest">Destanation param type.</typeparam> /// <param name="selectDynamicExpression">Select Dynamic Projection Expression factory.</param> public static void Register <TSource, TDest>(ISelectDynamicExpression <TSource, TDest> selectDynamicExpression) { if (!RegisterAllIfMultipleMappings(selectDynamicExpression)) { SelectResolver.Register(selectDynamicExpression); } }
public void Register <TSource, TDest, TParam1, TParam2>(ISelectDynamicExpression <TSource, TDest, TParam1, TParam2> resolver) { PairId id = PairId.GetId <TSource, TDest>(); var factory = (Func <TParam1, TParam2, Expression <Func <TSource, TDest> > >)resolver.GetSelectExpression; lock (_sync) { if (_dynamicExpressionFactories.ContainsKey(id)) { _dynamicExpressionFactories[id] = factory; } else { _dynamicExpressionFactories.Add(id, factory); } } }