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

BuildInternal() private method

private BuildInternal ( Type signature ) : object
signature System.Type
return object
        private object BuildInternal(Type signature)
        {
            object app;
            if (!_properties.TryGetValue(Constants.BuilderDefaultApp, out app))
            {
                app = NotFound;
            }

            foreach (Tuple<Type, Delegate, object[]> middleware in _middleware.Reverse())
            {
                Type neededSignature = middleware.Item1;
                Delegate middlewareDelegate = middleware.Item2;
                object[] middlewareArgs = middleware.Item3;

                app = Convert(neededSignature, app);
                object[] invokeParameters = new[] { app }.Concat(middlewareArgs).ToArray();
                app = middlewareDelegate.DynamicInvoke(invokeParameters);
                app = Convert(neededSignature, app);
            }

            return Convert(signature, app);
        }

Usage Example

Exemplo n.º 1
0
 public object Build(Type signature, Action<object> configuration)
 {
     var nestedBuilder = new AppBuilder(_conversions, _properties);
     configuration.Invoke(nestedBuilder);
     return nestedBuilder.BuildInternal(signature);
 }