码迷,mamicode.com
首页 > 编程语言 > 详细

DI 依赖注入之unity(mvc)

时间:2019-12-10 22:06:50      阅读:93      评论:0      收藏:0      [点我收藏+]

标签:ref   依赖   解决   pes   自动生成   data-   white   mil   exce   

DI 依赖注入之unity(mvc)

一.nuget下载安装:

使用Nuget安装Unity.MVC

安装完成后会在~/App_Start/目录下自动生成UnityMvcActivator.cs和UnityConfig.cs文件

二.配置:

打开UnityConfig文件,修改RegisterTypes()方法的代码

 

 public static void RegisterTypes(IUnityContainer container)
        {
            // NOTE: To load from web.config uncomment the line below.
            // Make sure to add a Unity.Configuration to the using statements.
            // container.LoadConfiguration();

            // TODO: Register your type‘s mappings here.
            // container.RegisterType<IProductRepository, ProductRepository>();

            //增加自己需要注入的接口和接口的实现类
            container.RegisterType<IUserDAL, UserDAL>();
            container.RegisterType<IUserBLL, UserBLL>();
        }

 

 

 

 

 

二.使用:【注意对比之间的区别及实现方式,会比较容易学习】

1.代码方式注入

(1)构造函数注入(推荐):

public class UserController : Controller
    {
        public UserController(IUserBLL userBLL)
        {
            this.userBLL = userBLL;
        }

        IUserBLL userBLL;
        // GET: User
        public ActionResult Index()
        {
            var list = userBLL.GetUserModels();
            return View(list);
        }
    }

 

(2)属性注入:

namespace ZLP.Web.Controllers
{
    public class UserController : Controller
    {
        [Dependency]
       public IUserBLL userBLL { get; set; }
        // GET: User
        public ActionResult Index()
        {
            var list = userBLL.GetUserModels();
            return View(list);
        }
    }
}

 

错误:System.NullReferenceException:“未将对象引用设置到对象的实例。”

解决方法:

1.给要注入的属性增加Dependency特性,切记

2.引用是否是using Unity命名空间下的,别选错了(using System.Runtime.CompilerServices;)

3.属性的访问修饰符是否用public

(3)方法注入:

 

2.配置文件注入(推荐)

 

三.常见问题:

DI 依赖注入之unity(mvc)

标签:ref   依赖   解决   pes   自动生成   data-   white   mil   exce   

原文地址:https://www.cnblogs.com/zlp520/p/12019360.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!