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

C# Unity容器的使用

时间:2020-08-24 16:41:57      阅读:62      评论:0      收藏:0      [点我收藏+]

标签:安装   cal   line   创建   code   情况   接口   android   idp   

  • 最简单的使用方式(记得安装Unity NuGet包呀)
               Console.WriteLine("***************Unity容器的初步应用***************");
               IUnityContainer container = new UnityContainer();//1 声明一个容器
               container.RegisterType<IPhone, AndroidPhone>();//2 初始化容器 注册类型
               IPhone phone = container.Resolve<IPhone>();//3 反射创建对象
               phone.Call();
  • 当你想使用一个接口 注册不同类型是 你需要指定名称 像下面这样 child、grandchild 便是指定的名称
               container.RegisterType<AbstractPad, ApplePad>();//抽象类      
               container.RegisterType<AbstractPad, ApplePad>("child");//1对多
               container.RegisterType<AbstractPad, ApplePadChild>("grandchild");//1对多

这样在你创建时 你可以像下面这样 指定创建

               AbstractPad pad = container.Resolve<AbstractPad>();
               var childPad = container.Resolve<AbstractPad>("child");
               var grandchildPad = container.Resolve<AbstractPad>("grandchild");

否则 注册是会出现覆盖的情况的 如下

               container.RegisterType<AbstractPad, ApplePad>();//抽象类
               container.RegisterType<AbstractPad, ApplePadChild>();//覆盖的

若是此时你创建对象 则pad将是 ApplePadChild类型

 var pad = container.Resolve<AbstractPad>();
  • 另外 父子类也会出现覆盖现象 比如
                container.RegisterType<AbstractPad, ApplePad>();//抽象类
                container.RegisterType<ApplePad, ApplePadChild>();//父子类  会覆盖<AbstractPad, ApplePad>  因为这个也是AbstractPad 

此时创建对象 则pad也是 ApplePadChild类型

 var pad = container.Resolve<AbstractPad>();

C# Unity容器的使用

标签:安装   cal   line   创建   code   情况   接口   android   idp   

原文地址:https://www.cnblogs.com/Alicia-meng/p/13551564.html

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