Unity的Deferring the Resolution of Objects
生活随笔
收集整理的這篇文章主要介紹了
Unity的Deferring the Resolution of Objects
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
Unity給出一種延遲創(chuàng)建對象的方案,可以先獲取對象的創(chuàng)建器 -> 再注冊類型 -> 其余代碼 -> 創(chuàng)建類型實例,創(chuàng)建器的類型必須是Func<T>,而不是和Func相同返回值的delegate??匆粋€簡單示例:
1 UnityContainer unityContainer = new UnityContainer(); 2 unityContainer.LoadConfiguration(); 3 4 Func<TextWriter> createFactory = unityContainer.Resolve<Func<TextWriter>>(); 5 6 unityContainer.RegisterType<TextWriter, StringWriter>(new InjectionConstructor()); 7 8 TextWriter textWriter = createFactory();由于4.0默認新增了Lazy<T>(3.5可以添加并行庫System.Threading.dll的引用),可以將類型的創(chuàng)建延遲,稍做修改后的代碼:
1 IUnityContainer unityContainer = new UnityContainer(); 2 unityContainer.LoadConfiguration(); 3 4 Func<TextWriter> createFactory = unityContainer.Resolve<Func<TextWriter>>(); 5 6 unityContainer.RegisterType<TextWriter, StringWriter>(new InjectionConstructor()); 7 8 Lazy<TextWriter> textWriter = new Lazy<TextWriter>(createFactory);?
?
《新程序員》:云原生和全面數(shù)字化實踐50位技術(shù)專家共同創(chuàng)作,文字、視頻、音頻交互閱讀總結(jié)
以上是生活随笔為你收集整理的Unity的Deferring the Resolution of Objects的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 统计函数——汇总统计时间类数据
- 下一篇: 修改IIS密码