.net Core 2.*使用autofac注入

创建项目

1.创建一个.net core 项目

2.创建一个类库

    2.1创建interface文件夹

    2.2创建Service文件夹

好了给大家看项目目录

对的。我创建了一个IUserService和一个UserService

然后给大家贴一下代码

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添加引用 需要的引用如下

1.Autofac

2.Autofac.Configuration

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。希望大家帮忙。

 

posted @ 2018-09-21 16:22  Royal丶鬼才  阅读(534)  评论(2编辑  收藏  举报