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);
            }
        }
    }
  • 相关阅读:
    在ConcurrentModificationException异常上的联想
    记录一下自己爬虎牙LOL主播的爬虫思路
    ajax解决跨域问题
    解决多线程下数据库操作问题
    浅谈时间复杂度
    想一下,最大公约数怎么求
    IO流与IO缓冲
    循环移位
    3Sum探讨(Java)
    Two Sum(两个数的相加)
  • 原文地址:https://www.cnblogs.com/shiningrise/p/5568882.html
Copyright © 2011-2022 走看看