假設我想要通過ProxyFactory創建實例,我需要能夠傳遞該工廠的構造函數參數列表。從激活上下文中獲取構造函數參數
public class Foo : ViewModelBase
{
public Bar MyBar { get; private set; }
[Inject]
public Foo(Bar bar)
{
MyBar = bar;
}
}
這是我目前的模塊,它需要擴展傳遞的依賴關係,因爲他們會被ninject拆分爲ProxyFactory裏
public class InjectionModuleForConstructorArgsTest : NinjectModule
{
public override void Load()
{
ViewModelProxyFactory proxyFactory = new ViewModelProxyFactory();
Bind<Foo>().ToMethod(
ctx =>
{
return proxyFactory.CreateViewModelProxy<Foo>();
});
}
}
基本上,我想要實現的是的自動化如下:
Bind<Foo>().ToMethod(
ctx =>
{
return proxyFactory.CreateViewModelProxy<Foo>(Kernel.Get<Bar>());
});
任何想法,如果這是可能的?
答案是要麼Ninject.Extensions.Factory或編輯解釋爲什麼構造,這不是足夠的 – 2013-05-06 19:57:16
嗯,實際上它**是一個我可以忍受的解決方案(我已經使用它了),但我想掌握ActivationContext並希望找到更通用的方法......我將檢查你提到的工廠擴展(+1) – 2013-05-07 07:41:55