Я пытаюсь использовать Ninject как контейнер IoC, но не мог понять, как создать экземпляр класса с более чем одним параметром в конструкторе, В основном у меня есть служебный интерфейс для проверки подлинности в библиотеке PCL и его реализация в проекте WP8, который получает в конструкторе ключ cosumer, secret и baseAddress:
//On PCL project
public interface IAuthorizationService {
bool Authenticate();
}
//On WP8 Project
pubilc class MyAuthenticator : IAuthorizationService {
public MyAuthenticator(string consumerKey, string consumerSecret, string baseAddress) { ... }
public bool Authenticate() { ... }
}
Теперь мне нужно настроить Ninject, чтобы я мог получить экземпляр IAuthorizationService. Если бы у моего класса не было конструкторов, я бы сделал:
internal class Module : NinjectModule {
public override void Load() {
this.Bind<IAuthorizationService>().To<MyAuthenticator>();
}
}
Если бы у него были фиксированные значения для конструктора, я бы сделал:
internal class Module : NinjectModule {
public override void Load() {
this.Bind<IAuthorizationService>().To<MyAuthenticator>().WithConstructorArgument( */* fixed argument here*/* );
}
}
И чтобы получить экземпляр Module.Get<IAuthorizationService>()
Но что, если параметры конструктора не могут быть разрешены во время компиляции? Как пройти паразиты? Как должен быть код привязки?
Отредактировано для уточнения вопроса.