Taijutsu.Event.Internal.BatchedHandlingSettings.ResolveConstructor C# (CSharp) Method

ResolveConstructor() private method

private ResolveConstructor ( ) : object>.Func
return object>.Func
        private Func<IEnumerable, object> ResolveConstructor()
        {
            Func<IEnumerable, object> ctor;

            if (!ConstructorsCache.TryGetValue(Type, out ctor))
            {
                var param = Expression.Parameter(typeof(IEnumerable), "events");

                // ReSharper disable once AssignNullToNotNullAttribute
                var constructorCall = Expression.New(typeof(EventBatch<>).MakeGenericType(Type).GetConstructor(new[] { typeof(IEnumerable) }), param);
                var constructorLambda = Expression.Lambda(constructorCall, param);
                ctor = (Func<IEnumerable, object>)constructorLambda.Compile();
                ConstructorsCache[Type] = ctor;
            }

            return ctor;
        }