Почему Ninject не разрешает защищенные свойства в базовом классе?
Я думаю, простой вопрос, но я потратил час на то, чтобы заставить базовые классы для моих контроллеров внедрить несколько сервисов посредством внедрения свойств. Сначала свойства были защищены областью, но объекты возвращались к нулю, как только я изменил область действия на общедоступную, это сработало. Есть ли способ защитить свойства и заставить IoC работать?
Вот моя установка.
public class BaseController : Controller
{
[Inject]
protected LoggingInterface.ILogger<BaseController> Logger { set; get; }
[Inject]
protected IRepository Repository { set; get; }
protected override void OnAuthorization(AuthorizationContext filterContext)
{
....
base.OnAuthorization(filterContext);
}
}
и загрузчик в NinjectMVC3 App_Start
private static void RegisterServices(IKernel kernel)
{
kernel.Bind(typeof(LoggingInterface.ILogger<>)).To(typeof(Log4NetLogger<>));
kernel.Bind<IRepository>().To<Repository>();
kernel.Bind<IUserService>().To<UserService>();
}
Спасибо Стивен