[英]How to register a helper class for passing object instances in Unity
我有一種情況,我需要使用助手類來注入類型的實例。 在我們的系統中,我們目前正在使用Unity將該對象注入到各個層中。
這是我目前擁有的:
container.RegisterInstance<ITest, new Test()>();
但是相反,我想使用一個幫助程序類來為我創建實例:
container.RegisterInstance<ITest, Helper.GetITestIntance()>();
container.RegisterType<ITest>(
new ContainerControlledLifetimeManager(),
new InjectionFactory(o => Helper.GetITestIntance()));
據此: http : //social.msdn.microsoft.com/Forums/en/wpf/thread/b71665b9-cc71-4c88-9776-6ccb4f871819似乎沒有直接的方法。 您既可以注冊將要使用的實例,也可以注冊容器將在需要時自行實例化的“類型”。 似乎沒有任何方法可以注冊“工廠”,類型注冊方法也不會接受任何委托/回調。
可以使用某種方式使用Container Extensions-也許您將能夠攔截實例的查詢,然后提供自己的響應。.我認為這是開始閱讀它的好地方:
http://visualizationtools.net/default/unity-objectbuilder-part-i/
http://visualizationtools.net/default/unity-objectbuilder-part-ii/
編輯:對不起,對不起,我忽略了LifetimeManager
注冊參數。 看來這正是您要尋找的東西: http : //tavaresstudios.com/Blog/post/Writing-Custom-Lifetime-Managers.aspx
因此,以LifetimeManager的形式編寫工廠,創建將使用GetValue方法完成,並在此Manager中注冊一個Type-然后Unity將向Manager詢問對象實例。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.