2012-04-05 35 views
0

如何在手動初始化類時執行構造函數注入?Ninject使用構造函數注入進行手動初始化

public class ApiKeyHandler : DelegatingHandler 
{ 
    private IApiService apiService; 

    public ApiKeyHandler(IApiService apiService) 
    { 
     this.apiService = apiService; 
    } 
} 

初始化:

var apiKey = new ApiKeyHandler(/*inject here */); 

如何做到這一點?我的綁定和一切都已經設置。

回答

0

你想要做這樣的事情:

var apiKey = new ApiKeyHandler(kernel.Get<IApiService>()); 

但是,爲什麼不注入ApiKeyHandler本身?

var apiKey = kernel.Get<ApiKeyHandler>(); 

Here is an article about Ninject

你基本上要在你的代碼的開頭設置此,可將其全球:

public IKernel kernel = new StandardKernel(); 

...

kernel.Bind<IApiService>() 
     .To<SomeConcreteApiService>(); 
+0

怎麼辦找到'kernel'對象? – 2012-04-05 03:53:23

+0

@Lolcoder我在原始答案下面給出了一些例子,但是我想你可能想查看一些其他教程以獲得更好的理解。 – 2012-04-05 04:00:42