Ejemplo n.º 1
0
        internal static IMapper <TOptions, TValue> Create(Expression <Func <TOptions, Queue <TValue> > > expression)
        {
            var enqueueMethodInfo = typeof(Queue <TValue>).GetKnownMethodInfo(nameof(Queue <TValue> .Enqueue),
                                                                              new[] { typeof(TValue) }, typeof(void)) !;

            var action = ExpressionHelpers.CreateCollectionWriter <TOptions, Queue <TValue>, TValue>(
                expression, enqueueMethodInfo, out var propertyName);

            return(new QueueMapper <TOptions, TValue>(action, propertyName));
        }
        internal static IMapper <TOptions, TValue> Create(Expression <Func <TOptions, ISet <TValue> > > expression)
        {
            var addMethodInfo = typeof(ISet <TValue>).GetKnownMethodInfo(nameof(ISet <TValue> .Add),
                                                                         new[] { typeof(TValue) }, typeof(bool)) !;

            var action = ExpressionHelpers.CreateCollectionWriter <TOptions, ISet <TValue>, TValue>(
                expression, addMethodInfo, out var propertyName);

            return(new SetMapper <TOptions, TValue>(action, propertyName));
        }