.net core 2.0使用autofac依赖注入

最近自学.net core 就用了autofac这个东东  不多说 直接上代码

首先在vs2017中创建一个.net core的项目 ,选着web空项目就好,然后在nuget里面安装着最新最稳定的两个程序包 。

安装之后接着就是配置问题了。在项目的Startup.cs文件里面配置。把ConfigureServices的返回类型改为IServiceProvider,然后在再ConfigureServices里面加上

var builder = new ContainerBuilder();//实例化 AutoFac 容器
builder.Populate(services);
ApplicationContainer = builder.Build();

并且还要返回 return new AutofacServiceProvider(ApplicationContainer);

好了  配置就完成了,然后就是注册实例

  builder.RegisterType<StudyService>().As<IStudyService>();这就是autofac的注册实例了  

然后完全配置下来就是

public class Startup
    {
        public Startup(IConfiguration configuration)
        {
            Configuration = configuration;
        }

        public IConfiguration Configuration { get; }

        // This method gets called by the runtime. Use this method to add services to the container.
        public IContainer ApplicationContainer { get; private set; }
        public IServiceProvider ConfigureServices(IServiceCollection services)
        {
           
            services.AddMvc();
            //var builder = new ContainerBuilder();
            //builder.RegisterType<StudyService>().As<IStudyService>();
            //builder.Populate(services);
            //this.ApplicationContainer = builder.Build();
            //return new AutofacServiceProvider(this.ApplicationContainer);


            var builder = new ContainerBuilder();//实例化 AutoFac  容器
            builder.RegisterType<StudyService>().As<IStudyService>(); //注册实例
            builder.Populate(services);
            ApplicationContainer = builder.Build();
            return new AutofacServiceProvider(ApplicationContainer);//第三方IOC接管 core内置DI容器 

        }

        // This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
        public void Configure(IApplicationBuilder app, IHostingEnvironment env)
        {
            if (env.IsDevelopment())
            {
                app.UseBrowserLink();
                app.UseDeveloperExceptionPage();
            }
            else
            {
                app.UseExceptionHandler("/Home/Error");
            }

            app.UseStaticFiles();

            app.UseMvc(routes =>
            {
                routes.MapRoute(
                    name: "default",
                    template: "{controller=Home}/{action=Index}/{id?}");
            });
        }
    }

说的简单,不深入,今天才接触这个,希望对大家有帮助

 

转载于:https://www.cnblogs.com/chunxiong/p/8559576.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值