• autofac + owin + webform + mvc + webapi集成demo


    http://git.oschina.net/shiningrise/AutofacOwinDemo

    using Microsoft.Owin;
    using Owin;
    using System.Web.Mvc;
    
    using Autofac;
    using Autofac.Integration.Owin;
    using Autofac.Integration.Mvc;
    using Autofac.Integration.WebApi;
    using System.Web.Http;
    using System.Reflection;
    using System.Web.Routing;
    
    [assembly: OwinStartupAttribute(typeof(AutofacOwinDemo.Startup))]
    namespace AutofacOwinDemo
    {
        public partial class Startup
        {
            public void Configuration(IAppBuilder app)
            {
                //app.Run(context =>
                //{
                //    context.Response.ContentType = "text/plain";
                //    return context.Response.WriteAsync("Hello World!");
                //});
    
                ConfigureAuth(app);
    
                var builder = new ContainerBuilder();
                builder.RegisterType<Test1>().As<ITest>();
                builder.RegisterType<Test2>();
                builder.RegisterControllers(typeof(MvcApplication).Assembly);
    
    
                var config = new HttpConfiguration();
                WebApiConfig.Register(config);
    
    
                builder.RegisterApiControllers(Assembly.GetExecutingAssembly());
                builder.RegisterWebApiFilterProvider(config);
    
                var container = builder.Build();
                DependencyResolver.SetResolver(new AutofacDependencyResolver(container));
                config.DependencyResolver = new AutofacWebApiDependencyResolver(container);
    
                app.UseAutofacMiddleware(container);
                app.UseAutofacMvc();
    
                app.UseAutofacWebApi(config);
                app.UseWebApi(config);
    
    
            }
        }
    }

    webform属性注入

    pagebase方式

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    
    using Owin;
    using Autofac;
    using Autofac.Integration.Owin;
    using System.Web;
    
    namespace AutofacOwinDemo
    {
        public partial class WebForm1 : System.Web.UI.Page
        {
            public ITest Test { get; set; }
    
            protected void Page_PreInit(object sender, EventArgs e)
            {
                var owin = this.Context.Request.GetOwinContext() ;
                var scop = owin.GetAutofacLifetimeScope();
                scop.InjectProperties(this);
            }
    
            protected void Page_Load(object sender, EventArgs e)
            {
    
            }
        }
    }
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.Web.Http;
    using System.Web.Mvc;
    using System.Web.Optimization;
    using System.Web.Routing;
    using System.Web.Security;
    using System.Web.SessionState;
    
    namespace AutofacOwinDemo
    {
        public class MvcApplication : System.Web.HttpApplication
        {
            protected void Application_Start()
            {
                AreaRegistration.RegisterAllAreas();
    
                //GlobalConfiguration.Configure(WebApiConfig.Register); //这里要删除,让owin完全管理webapi
    
                FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
                RouteConfig.RegisterRoutes(RouteTable.Routes);
                BundleConfig.RegisterBundles(BundleTable.Bundles);
            }
        }
    }
  • 相关阅读:
    某个虚拟机卡死时,单独关闭卡死虚拟机的方法
    VMWare虚拟机启动不了有个叉叉的解决办法
    IDEA如何将git下来的是工程转为maven工程
    Git的使用及安装
    教你一招避开网盘限速(百度网盘下载助手)
    idea编写第一个springboot程序
    解决IDEA Initialization error 'https://start.spring.io'
    从1G到5G发展史(3GPP是个什么组织 为啥5G标准离不开它)
    idea万能快捷键,你不知道的17个实用技巧!!!
    MySQL下载安装详情教程
  • 原文地址:https://www.cnblogs.com/shiningrise/p/5568901.html
Copyright © 2020-2023  润新知