Owin.Builder.AppBuilder.ToMiddlewareFactory C# (CSharp) Method

ToMiddlewareFactory() private method

private ToMiddlewareFactory ( object middlewareObject, object args ) : Tuple
middlewareObject object
args object
return Tuple
        private static Tuple<Type, Delegate, object[]> ToMiddlewareFactory(object middlewareObject, object[] args)
        {
            if (middlewareObject == null)
            {
                throw new ArgumentNullException("middlewareObject");
            }

            Delegate middlewareDelegate = middlewareObject as Delegate;
            if (middlewareDelegate != null)
            {
                return Tuple.Create(GetParameterType(middlewareDelegate), middlewareDelegate, args);
            }

            Tuple<Type, Delegate, object[]> factory = ToInstanceMiddlewareFactory(middlewareObject, args);
            if (factory != null)
            {
                return factory;
            }

            factory = ToGeneratorMiddlewareFactory(middlewareObject, args);
            if (factory != null)
            {
                return factory;
            }

            if (middlewareObject is Type)
            {
                return ToConstructorMiddlewareFactory(middlewareObject, args, ref middlewareDelegate);
            }

            throw new NotSupportedException(BuilderResources.Exception_MiddlewareNotSupported + (middlewareObject ?? string.Empty).ToString());
        }