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)); }