У меня расстраивать вопрос с Ninject и MVC 4.Ninject системуЗабыли Scope Потеря Binding
Вот код блока:
Kernel.Bind<IUserInfo>().To<UserInfo().InRequestScope();
var userInfo = Kernel.Get<IUserInfo>();
Большую часть времени, это хорошо, и у меня есть пользовательская информация. Иногда, однако, я получаю следующее сообщение об ошибке:
Error activating IUserInfo
No matching bindings are available, and the Type is not self-bindable.
Activation path:
1) Request for IUserInfo
Suggestions:
1) Ensure that you have defined a binding for IUserInfo.
2) If the binding was defined in a module, ensure that the module has been loaded into the kernel.
3) Ensure you have not accidentally created more than one kernel.
4) If you are using constructor arguments, ensure that the parameter name matches the constructors parameter name.\r\n 5) If you are using automatic module loading, ensure the search path and filters are correct.
Я срезал все, что я могу думать, чтобы, и я в недоумении. Я не знаю, почему это прерывается с перерывами. Основываясь на моем, по общему признанию, ограниченном знании Ninject, не должно быть никакого способа, чтобы привязка была отсутствующей.
Я вижу много ссылок на использование пакетов Ninject MVC Nuget, но приложение, когда я унаследовал его, не использует их, оно инициализирует Ninject с помощью ActionFilter. Является ли этот шаблон просто сломанным по своей сути и каким-то образом вмешивается в надлежащую привязку?
Помощь?
Вы решаете использовать IUserInfo или UserInfo? Исключение составляет первое. Но ваш пример использует UserInfo. – treze
Упс, хороший улов. Я разрешаю для IUserInfo, я отредактирую вопрос. – normanthesquid