日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

unity的依赖注入

發布時間:2023/12/9 编程问答 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 unity的依赖注入 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

參考文檔

http://www.cnblogs.com/zhangchenliang/archive/2013/01/08/2850970.html

http://www.tuicool.com/articles/yiUzQj

IUnityContainer container = new UnityContainer();#region 1.0 注冊類型container.RegisterType<IKiss, Boy>();var boy = container.Resolve<IKiss>();Girl gril = new Girl(boy); #endregion#region 2.0 注冊實例Boy boy2 = new Boy();container.RegisterInstance<IKiss>(boy2);var boy3 = container.Resolve<IKiss>();Girl gril1 = new Girl(boy3); #endregion#region 3.0 單例模式/*boy4和boy5的屬性dt相同,* 可以證明是單例*/container.RegisterType<IKiss, Boy>(new ContainerControlledLifetimeManager());var boy4 = container.Resolve<IKiss>();var boy5 = container.Resolve<IKiss>(); #endregion#region 4.0 配置文檔配置注冊和解析IUnityContainer container1 = new UnityContainer();UnityConfigurationSection configuration = ConfigurationManager.GetSection(UnityConfigurationSection.SectionName)as UnityConfigurationSection;configuration.Configure(container1, "defaultContainer");var boy6 = container1.Resolve<IKiss>(); #endregion#region 5.0 帶名稱的注冊和解析container.RegisterType<IKiss, Boy>("boy");container.RegisterType<IKiss, Boy1>("boy1");var boy7 = container.Resolve<IKiss>("boy1"); var list=container.ResolveAll<IKiss>();#endregion public interface IKiss{void Kiss();}public class Girl {public IKiss boy;public Girl(IKiss boy){ this.boy = boy; }public void Kiss(){this.boy.Kiss();Console.WriteLine("girl is kissing");}}public class Boy : IKiss{public Boy(){this.dt = DateTime.Now;}public DateTime dt { get; set; }public void Kiss(){Console.WriteLine("boy is kissing");}}public class Boy1 : IKiss{public Boy1(){this.dt = DateTime.Now;}public DateTime dt { get; set; }public void Kiss(){Console.WriteLine("boy1 is kissing");}} <configuration><configSections><section name="unity" type="Microsoft.Practices.Unity.Configuration.UnityConfigurationSection,Microsoft.Practices.Unity.Configuration"/></configSections><startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" /></startup><unity><containers><container name="defaultContainer"><register type="DI.IKiss,DI" mapTo="DI.Boy,DI"/></container></containers></unity> </configuration>

四種注入方式

public interface IPeople { void Live();}public interface IEat { void Eat();}public interface ISleep { void Sleep(); }public interface IPlay { void Play();}public class PlayBoy : IPeople{//構造函數注入public IEat PEat { get; set; }//屬性注入 [Dependency]public ISleep PSleep { get; set; }public IPlay PPlay { get; set; }public PlayBoy(IEat eat){ this.PEat = eat; }[InjectionMethod]public void Initialize(IPlay play){ this.PPlay = play; }public void Live(){this.PEat.Eat();this.PSleep.Sleep();this.PPlay.Play();Console.WriteLine("playboy is walking");}}public class BoyEat : IEat{public void Eat(){Console.WriteLine("eat rice and meat");}}public class BoySleep : ISleep{public void Sleep(){Console.WriteLine("sleep at 12:00 and wake up at 8:00");}}public class BoyPlay : IPlay{public void Play(){Console.WriteLine("play war3 and dota");}}

注冊和解析

IUnityContainer container = new UnityContainer();container.RegisterType<IPeople, PlayBoy>();container.RegisterType<IEat, BoyEat>();container.RegisterType<ISleep, BoySleep>();container.RegisterType<IPlay, BoyPlay>();var p = container.Resolve<IPeople>();p.Live();

?

轉載于:https://www.cnblogs.com/tgdjw/p/4680343.html

總結

以上是生活随笔為你收集整理的unity的依赖注入的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。