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);
            }
        }
    }
  • 相关阅读:
    商务邮件
    比较好用的办公软件
    django之创建第6-2个项目-过滤器列表
    Linux管道思想
    django之创建站点之基本流程
    django资料
    Django之 创建第一个站点
    python之获取微信服务器的ip地址
    python之获取微信access_token
    python之模块py_compile用法(将py文件转换为pyc文件)
  • 原文地址:https://www.cnblogs.com/shiningrise/p/5568882.html
Copyright © 2011-2022 走看看