2012-10-10 27 views
1

假設我有這樣的代碼:在UnityContainer登記後如何追加injectionMembers?

container.RegisterType<IService, Implementation>(name, manager, 
    new InjectionConstructor(...)); 

然後,我需要InterceptionBehaviour添加到我的註冊,所以這將是巨大的,如果類ContainerRegistration有像AppendInjectionMembers(...)一些方法。

所以,問題是:是否有可能在註冊後追加injectionMembers?如果是這樣,那該怎麼做?

回答

1

感謝所有,我找到了答案

container.Configure<InjectedMembers>(). 
    ConfigureInjectionFor<Implementation>(new InterceptionBehavior()); 

的另一種方法,而無需使用過時的類InjectedMembers

container.RegisterType(null, typeof(Implementation), new InterceptionBehavior()); 

,甚至可使用通用版(感謝Chris塔瓦雷斯):

container.RegisterType<Implementation>(new InterceptionBehavior()); 
+1

可以去掉初始爲空,並使用泛型:container.RegisterType <實施>(新的InterceptionBehavior());注射成分是添加劑;如果你配置相同的東西(例如多個InjectionFactory),那麼最後一個配置爲勝。 –

+0

你可以通過註冊多個行爲這種方式?像: 'container.RegisterType <實施>(新FirstInterceptionBehavior()); container.RegisterType <實施>(新SecondInterceptionBehavior());' –