Я использовал NuGet для установки последней версии Ninject (v2.2.1.4).
Затем я создал свой собственный NinjectDependencyResolver (кредит Адам Фриман и Стив Сандерсон ):
public class NinjectDependencyResolver : IDependencyResolver
{
private IKernel kernel;
public NinjectDependencyResolver()
{
kernel = new StandardKernel();
AddBindings();
}
public object GetService(Type serviceType)
{
return kernel.TryGet(serviceType);
}
public IEnumerable<object> GetServices(Type serviceType) {
return kernel.GetAll(serviceType);
}
public IBindingToSyntax<T> Bind<T>()
{
return kernel.Bind<T>();
}
public IKernel Kernel
{
get { return kernel; }
}
private void AddBindings()
{
kernel.Bind<ITitleRepository>().To<TitleRepository>();
kernel.Bind<IDayRepository>().To<DayRepository>();
kernel.Bind<IMonthRepository>().To<MonthRepository>();
}
}
И затем зарегистрировал средство разрешения зависимостей в запуске приложения global.asax:
protected void Application_Start()
{
//...other code
DependencyResolver.SetResolver(new NinjectDependencyResolver());
}
Затем в моем коде есть следующая строка:
ITitleRepository titleRepository = (ITitleRepository)DependencyResolver.Current.GetService(typeof(ITitleRepository));
Если я запускаю код в режиме отладки, он выглядит корректно , однако, если я войду в этот код (построчно), то когда он запускает kernel.TryGet (serviceType), следующая ошибкапроисходит:
Источник недоступен
Надеемся, что изображение будет видно?
![enter image description here](https://i.stack.imgur.com/nlWbT.png)
Кто-нибудь знает, почему это может происходить?