ASP.NET MVC (.net framework) 使用 Autofac

老项目 ASP.NET MVC (.net framework) 使用 Autofac 包实现注入反转控制步骤:

1、引用nuget包:autofac 和 autofac.mvc5

2、修改 Global.asxs.cs,下面举例注入 DapperContext 实例

using System;
using System.Reflection;
using System.Web.Mvc;
using System.Web.Optimization;
using System.Web.Routing;
using Autofac;
using Autofac.Integration.Mvc;

namespace xxx
{
    public class MvcApplication : System.Web.HttpApplication
    {
        private static IContainer _container;
        public static IContainer Container
        { get { return _container; } }

        protected void Application_Start()
        {
            AreaRegistration.RegisterAllAreas();
            FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
            RouteConfig.RegisterRoutes(RouteTable.Routes);
            BundleConfig.RegisterBundles(BundleTable.Bundles);


            ContainerBuilder builder = new ContainerBuilder();
            // Register individual components
            builder.RegisterType<DapperContext>().SingleInstance();
            builder.RegisterControllers(Assembly.GetExecutingAssembly());
            //builder.Register(c => new DapperContext()).SingleInstance();
            _container = builder.Build();
            DependencyResolver.SetResolver(new AutofacDependencyResolver(_container));
        }

        protected void Application_Error(object sender, EventArgs e)
        {
            Exception ex = Server.GetLastError();
            //Server.ClearError();
        }
    }
}

然后在控制器构造方法里面就可以引用注入的实例了

2023-02-22 ASP.NET CORE

发布评论