unity三种注入示例

王朝学院·作者佚名  2016-08-27
窄屏简体版  字體: 小  |  中  |  大  |  超大  

1/*2* 演示Unity注入3**/4usingMicrosoft.PRactices.Unity;5usingSystem;67namespaceUnity.Property.Inject8{9classProgram10{11publicstaticIUnityContainer container;1213staticvoidMain(string[] args)14{15container =newUnityContainer();1617//PropertyInject();18//ConstructorInject();19MethodInject();2021Console.ReadLine();22}2324///<summary>25///构造注入26///</summary>27staticvoidConstructorInject()28{29Console.WriteLine("构造注入");30container.RegisterType<ILog, ALog>();31//container.RegisterType<ILog, BLog>();3233container.RegisterType<ipeople, Man>();34//container.RegisterType<IPeople, Woman>();3536varpeople = container.Resolve<IPeople>();37people.Print2();38}3940///<summary>41///属性注入42///</summary>43staticvoidPropertyInject()44{45Console.WriteLine("属性注入");46//通过Register不同的ILog的派生类型,达到用不同的日志组件进行打印4748//container.RegisterType<ILog, ALog>();49container.RegisterType<ILog, BLog>();5051container.RegisterType<IPeople, Man>();52//container.RegisterType<IPeople, Woman>();5354varpeople = container.Resolve<IPeople>();55people.Print();56}5758staticvoidMethodInject()59{60Console.WriteLine("函数注入");61//通过Register不同的ILog的派生类型,达到用不同的日志组件进行打印6263//container.RegisterType<ILog, ALog>();64container.RegisterType<ILog, BLog>();6566container.RegisterType<IPeople, Man>();67//container.RegisterType<IPeople, Woman>();6869varpeople = container.Resolve<IPeople>();70people.Logger.Write("函数注入"+ people.Logger !=null?"成功":"失败");71}72}7374publicinterfaceIPeople75{76///<summary>77///属性注入用78///</summary>79ILog Logger {get;set; }8081///<summary>82///构造注入用83///</summary>84ILog Logger2 {get;set; }8586String Name {get;set; }8788String Sex {get;set; }8990///<summary>91///属性注入用92///</summary>93voidPrint();9495///<summary>96///构造注入用97///</summary>98voidPrint2();99100///<summary>101///函数注入用102///</summary>103voidPrint3(ILog logger);104}105106publicclassMan : IPeople107{108[Dependency]109publicILog Logger {get;set; }110publicILog Logger2 {get;set; }111112publicstringName {get;set; }113114publicstringSex {get;set; }115116publicMan(ILog logger2) {this.Logger2 =logger2; }117118publicvoidPrint()119{120Logger.Write(base.ToString());121}122123publicvoidPrint2()124{125Logger.Write(base.ToString());126}127128[InjectionMethod]129publicvoidPrint3(ILog logger)130{131this.Logger =logger;132}133}134135publicclassWoman : IPeople136{137138[Dependency]139publicILog Logger {get;set; }140publicILog Logger2 {get;set; }141142publicstringName {get;set; }143144publicstringSex {get;set; }145146publicWoman(ILog logger2) {this.Logger2 =logger2; }147148publicvoidPrint()149{150Logger.Write(base.ToString());151}152153publicvoidPrint2()154{155Logger.Write(base.ToString());156}157158[InjectionMethod]159publicvoidPrint3(ILog logger)160{161this.Logger =logger;162}163}164165166publicinterfaceILog167{168voidWrite(String msg);169}170171publicclassALog : ILog172{173publicvoidWrite(String msg) { Console.WriteLine("[A] {0}", msg); }174}175176publicclassBLog : ILog177{178publicvoidWrite(String msg) { Console.WriteLine("[B] {0}", msg); }179}180}

 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
© 2005- 王朝網路 版權所有 導航