Example #1
0
        private static void RegisterArrayResolver(UnregisteredTypeEventArgs e,
                                                  global::SimpleInjector.Container container, Type elementType)
        {
            var producer = container.GetRegistration(typeof(IEnumerable <>)
                                                     .MakeGenericType(elementType));
            var enumerableExpression = producer.BuildExpression();
            var arrayMethod          = typeof(Enumerable).GetMethod("ToArray")
                                       .MakeGenericMethod(elementType);
            var arrayExpression =
                Expression.Call(arrayMethod, enumerableExpression);

            e.Register(arrayExpression);
        }