我有一種感覺,這只是我在Winforms中對DI的誤解。Ninject沒有注入現有的Winforms應用程序
我想實現Ninject到現有的winforms應用程序。在Program.cs中我做類似的東西,以
IKernel kernel = new StandardKernel(new NinjectBindings());
Application.Run(kernel.Get<MainContainer>());
我NinjectBindings有
Bind<IFilterEngine>().To<FilterEngine>();
然後在mainContainer上形式的一種形式客戶用戶控件(SearchResults.cs)我試圖使用方法注射像這樣
[Inject]
public void AddFilterEngine(IFilterEngine filterEngine)
{
_filterEngine = filterEngine;
}
的應用程序編譯和運行然而細,我_filterEngine實例爲null並AddFilterEngine方法不會被調用。這是因爲SearchResults不是用Ninject創建的嗎?它的父代形式是硬編碼的。如果是這樣,我假設每個父母都需要使用Ninject創建?