zoukankan      html  css  js  c++  java
  • Autofac依赖注入框架

    最近使用Autofac框架做项目的依赖注入,感觉挺好用的。

    没有深入研究,只是拿来用用,具体可以去官网看看:https://autofac.org/。

    这里只是贴一下最近项目的配置:

    public partial class Startup
        {
            public void ConfigureContainer(IAppBuilder app)
            {
                var builder = new ContainerBuilder();
    
                // You can register controllers all at once using assembly scanning...
                builder.RegisterControllers(typeof(MvcApplication).Assembly);
    
                // Get your HttpConfiguration.
                var config = GlobalConfiguration.Configuration;
    
                // Register your Web API controllers.
                builder.RegisterApiControllers(Assembly.GetExecutingAssembly());
    
                // OPTIONAL: Register the Autofac filter provider.
                builder.RegisterWebApiFilterProvider(config);
    
                // OPTIONAL: Register the Autofac model binder provider.
                builder.RegisterWebApiModelBinderProvider();
    
                // ...or you can register individual controlllers manually.
                //builder.RegisterType<HomeController>().InstancePerRequest();
    
                builder.RegisterModule<AutofacWebTypesModule>();//Register Web Abstractions
    
                builder.RegisterSource(new ViewRegistrationSource());//Enable Property Injection for View Pages
    
                builder.RegisterFilterProvider();//Enable Property Injection for Action Filters
    
                builder.RegisterType<EFDbContext>().As<IDbContext>().InstancePerRequest();
                builder.RegisterGeneric(typeof(Repository<>)).As(typeof(IRepository<>)).InstancePerLifetimeScope();
                builder.RegisterType<MemoryCacheManager>().As<ICacheManager>().InstancePerRequest();
                #region  Service
                builder.RegisterType<SysUserService>().As<ISysUserService>().InstancePerLifetimeScope();
                //注册各种服务
                
                #endregion
                var container = builder.Build();
                DependencyResolver.SetResolver(new AutofacDependencyResolver(container));
    
                config.DependencyResolver = new AutofacWebApiDependencyResolver(container);
    
                RuntimeContext.Instance.ContainerManager = new ContainerManager(container);//存储到全局实例中
                // OWIN MVC SETUP:
    
                // Register the Autofac middleware FIRST, then the Autofac MVC middleware.
                app.UseAutofacMiddleware(container);
                app.UseAutofacMvc();
            }
        }

    项目是基于MVC的,利用Startup的partialt特性,加了上面依赖注入配置方法ConfigureContainer,然后可以在MVC的Startup类的Configuration方法中调用该方法,如下:

     public void Configuration(IAppBuilder app)
     {
       ConfigureContainer(app);
     }

    OK,依赖注入搞定了.

  • 相关阅读:
    GPS授时服务器(卫星同步时钟)科普小知识
    GPS和北斗卫星授时技术在时频领域的应用和发展
    NTP时间同步服务器(NTP时间服务器)在北京邮电大学的应用案例
    北斗时钟源(GPS网络时钟源)在校园网络应用
    NTP时钟源(GPS时间源)介绍与分析 安徽京准电子科技
    搭建ntp时间服务器并配置集群自动时钟同步
    GPS北斗网络时间源在内网域控制器上的设置方法
    肺炎疫情过后最想干的几件事
    提升苏州城市地位的几个建议
    江苏省如要打造一线城市,很简单!
  • 原文地址:https://www.cnblogs.com/marshhu/p/7541754.html
Copyright © 2011-2022 走看看