.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。但愿你们帮忙。

相关文章
相关标签/搜索