2012-04-05 3 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'? –

+0

@Lolcoder Я дал немного больше пример ниже моего первоначального ответа, однако, я думаю, вы, возможно, захотите ознакомиться с некоторыми другими учебниками, чтобы получить более глубокое понимание. –

Смежные вопросы