剑轩

c#使用unity实现依赖注入二:基本使用

电脑版发表于:2019/1/22 15:00


使用Unity实现依赖注入的基本步骤:

1:需要创建一个容器

2:给容器添加类与类之间的关系(控制反转)

3:  在需要的地方从容器里边拿需要的对象(依赖注入)



一:创建一个unity容器与添加好类与类之间的关系


使用RegisterType方式注入类与类之间的关系

public class MyUnityContainer
    {
        //实例化一个容器
        private static IUnityContainer uc = new UnityContainer();
        static MyUnityContainer()
        {
            //添加好类之间的依赖关系
            uc.RegisterType<IUserDAL, UserDAL>();
        }

        //获取容器,方便其他类使用
        public static IUnityContainer GetContainer()
        {
            return uc;
        }
    }


当然也可以使用RegisterInstance方式注入类与类之间的关系

   UserTwoDAL udal = new UserTwoDAL();
   uc.RegisterInstance<IUserDAL>(udal);


Unity注入方式

RegisterType:只能注入两个类之间的关系。默认生命周期:瞬时模式

RegisterInstance:可以注入一个实例,可以做很多初始化工作,有一些特殊需求的情况下使用。默认生命周期:单利模式


IUserDAL是个接口

   public interface IUserDAL
    {
        string GetUser();
    }

UserTwoDAL是个实现类

public class UserDAL : IUserDAL
    {
        public string GetUser()
        {
            return "str1";
        }
    }



二:在需要的地方从容器里边拿需要的对象

  public ActionResult Index()
        {
            //获取到容器
            IUnityContainer iuc = MyUnityContainer.GetContainer();
            //从容器拿到需要的对象
            IUserDAL iud = iuc.Resolve<IUserDAL>();
            ViewBag.username = iud.GetUser();
            return View();
        }



如果要换一个实现类只需要在配置类之间关系的地方修改一下配置就行了

   uc.RegisterType<IUserDAL,UserTwoDAL>();







关于TNBLOG
TNBLOG,技术分享。技术交流:群号677373950
ICP备案 :渝ICP备18016597号-1
App store Android
精彩评论
{{item.replyName}}
{{item.content}}
{{item.time}}
{{subpj.replyName}}
@{{subpj.beReplyName}}{{subpj.content}}
{{subpj.time}}
猜你喜欢