Por que o Ninject não resolverá propriedades protegidas em uma classe bas

Pergunta simples, eu acho, mas passei uma hora tentando obter uma classe base para meus controladores terem alguns serviços injetados via injeção de propriedade. As propriedades foram protegidas com escopo no início, mas os objetos continuavam retornando nulos, depois que eu mudei o escopo para público, funcionou. Existe alguma maneira de proteger as propriedades e fazer com que a IoC funcione?

Aqui está minha configuração.

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);
    }
}

e o boot-strapper no 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>();
    } 

Obrigado, Stephen

questionAnswers(2)

yourAnswerToTheQuestion