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);
            }
        }
    }
  • 相关阅读:
    php date 时间差
    array_merge 和 + 号的的区别
    apache 添加https后导致http无法访问
    php 获取url
    TP5 事务处理
    LeetCode 每日一题 (盛最多水的容器)
    LeetCode 每日一题 (字符串转换整数 (atoi))
    LeetCode 每日一题(5. 最长回文子串)
    LeetCode 每日一题 (3 无重复字符的最长子串)
    LeetCode 每日一题 (两数相加)
  • 原文地址:https://www.cnblogs.com/shiningrise/p/5568882.html
Copyright © 2011-2022 走看看