.net Core 2.*使用autofac注入

建立項目

1.建立一個.net core 項目ide

2.建立一個類庫ui

    2.1建立interface文件夾this

    2.2建立Service文件夾spa

好了給你們看項目目錄.net

對的。我建立了一個IUserService和一個UserServicecode

而後給你們貼一下代碼blog

using System;
using System.Collections.Generic;
using System.Text;

namespace AutofaceTest.Service.Interface
{
    public interface IUserService
    {
        string GetUserName();
    }
}
using AutofaceTest.Service.Interface;
using System;
using System.Collections.Generic;
using System.Text;

namespace AutofaceTest.Service.Service
{
    public class UserService : IUserService
    {
        public string GetUserName()
        {
            return "恩很~是我";
        }
    }
}

 

 

添加引用

須要經過nuget添加引用 須要的引用以下get

1.Autofacstring

2.Autofac.Configurationio

3.Autofac.Extensions.DependencyInjection

 

配置startup文件

原來的ConfigureServices

        public void ConfigureServices(IServiceCollection services)
        {
            services.AddMvc();
        }

修改爲這個樣子

        public IContainer ApplicationContainer { get; private set; }
        // This method gets called by the runtime. Use this method to add services to the container.
        public IServiceProvider ConfigureServices(IServiceCollection services)
        {
            //返回的void 修改成 IServiceProvider 這是爲了讓第三方Ioc容易接管通道 具體在第幾層怎麼實現我沒有深刻研究  
            services.AddMvc();
            var builder = new ContainerBuilder();//實例化 AutoFac  容器            
            builder.Populate(services);//管道寄居
            builder.RegisterType<AutofaceTest.Service.Service.UserService>().As<Service.Interface.IUserService>();//UserService注入到IUserService
            ApplicationContainer = builder.Build();//IUserService UserService 構造
            return new AutofacServiceProvider(ApplicationContainer);//將autofac反饋到管道中
        }

 

在Controller中調用

        private IUserService _userService;
        public HomeController(IUserService userService)
        {

            _userService = userService;
        }
        public IActionResult Index()
        {
            ViewBag.Uname = _userService.GetUserName();//這裏就能夠直接調用啦。
            return View();
        }

 

後記

剛剛建立了一個.net core的羣歡迎你們進入:

點擊連接加入羣聊【.Net Core研究團】:https://jq.qq.com/?_wv=1027&k=5IEolkJ

若是個人文章對您有幫助,但願您能夠點個贊。最近打算申請mvp。但願你們幫忙。

相關文章
相關標籤/搜索