示例#1
0
 /// <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);
     }
 }
示例#2
0
        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);
                }
            }
        }