zoukankan      html  css  js  c++  java
  • Autofac.Integration.Owin

            public static IAppBuilder UseAutofacMiddleware(this IAppBuilder app, ILifetimeScope container)
            {
                if (app == null)
                {
                    throw new ArgumentNullException("app");
                }
    
                if (container == null)
                {
                    throw new ArgumentNullException("container");
                }
    
                return app
                    .RegisterAutofacLifetimeScopeInjector(container)
                    .UseAllMiddlewareRegisteredInContainer(container);
            }
            private static IAppBuilder RegisterAutofacLifetimeScopeInjector(this IAppBuilder app, ILifetimeScope container)
            {
                app.Use(async (context, next) =>
                    {
                        using (var lifetimeScope = container.BeginLifetimeScope(MatchingScopeLifetimeTags.RequestLifetimeScopeTag,
                        b => b.RegisterInstance(context).As<IOwinContext>()))
                        {
                            context.Set(Constants.OwinLifetimeScopeKey, lifetimeScope);
                            await next();
                        }
                    });
    
                app.Properties[InjectorRegisteredKey] = true;
                return app;
            }
    using System;
    using Microsoft.Owin;
    
    namespace Autofac.Integration.Owin
    {
        /// <summary>
        /// Extension methods for using Autofac within an OWIN context.
        /// </summary>
        public static class OwinContextExtensions
        {
            /// <summary>
            /// Gets the current Autofac lifetime scope from the OWIN context.
            /// </summary>
            /// <param name="context">The OWIN context.</param>
            /// <returns>The current lifetime scope.</returns>
            /// <exception cref="System.ArgumentNullException">
            /// Thrown if <paramref name="context" /> is <see langword="null" />.
            /// </exception>
            public static ILifetimeScope GetAutofacLifetimeScope(this IOwinContext context)
            {
                if (context == null)
                {
                    throw new ArgumentNullException("context");
                }
    
                return context.Get<ILifetimeScope>(Constants.OwinLifetimeScopeKey);
            }
        }
    }
  • 相关阅读:
    TypesScript+Webpack
    TypeScript 类型
    git操作
    kafka
    java: cannot find symbol symbol: variable log
    Angular结构型指令,模块和样式
    Angular 自定义拖拽指令
    Angular changeDetction
    Angular 依赖注入
    RXJS Observable的冷,热和Subject
  • 原文地址:https://www.cnblogs.com/shiningrise/p/5568882.html
Copyright © 2011-2022 走看看