标签:安装 cal line 创建 code 情况 接口 android idp
Console.WriteLine("***************Unity容器的初步应用***************");
IUnityContainer container = new UnityContainer();//1 声明一个容器
container.RegisterType<IPhone, AndroidPhone>();//2 初始化容器 注册类型
IPhone phone = container.Resolve<IPhone>();//3 反射创建对象
phone.Call();
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>();
标签:安装 cal line 创建 code 情况 接口 android idp
原文地址:https://www.cnblogs.com/Alicia-meng/p/13551564.html