zoukankan      html  css  js  c++  java
  • 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);
            }
        }
    }
  • 相关阅读:
    js冒泡排序
    总结常见疑问
    第八课 课程重点(js语句:条件、循环)
    第九课 课程重点(js语句:获取时间、数字取值、定时器)
    利用NABCD模型进行竞争性需求分析
    运行结果及总结~张萍萍
    测试与调试 滕娟
    面向对象分析设计
    设计类图 201303014029 于海飞
    SRS文档 王倩倩 201303014004
  • 原文地址:https://www.cnblogs.com/shiningrise/p/5568901.html
Copyright © 2011-2022 走看看