2012-04-05 34 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