Usando injeção de dependência no fichário de modelo do asp.net MVC3

Estou trabalhando no site do MVC3, tentando usar o Ninject para resolver minhas dependências. Eu tenho o seguinte cenário:

public class UserModelBinder : IModelBinder
{
    //[Inject]
    public UserDataService userData { get; set; }

    public object BindModel(
        ControllerContext controllerContext,
        ModelBindingContext bindingContext)
    {
        Guid UserID =
            (Guid)Membership.GetUser().ProviderUserKey;

        //userDataService = DependencyResolver.Current
        //    .GetService<UserDataService>();

        User user = userDataService.GetUser(UserID);

        return user;
    }
}

notou as linhas de código comentadas?

Eu registro o fichário emGlobal.asax Como

ModelBinders.Binders[typeof(User)] = new UserModelBinder();

Então eu não posso realmente fazer injeção através da construção.

UserDataService tem uma cadeia de dependências:UserDataService -> UserRepository -> Context. Então seria bom usar o Ninject aqui.

O problema é que quando eu descomente[Inject] acimauserData declaração, e tente obter Ninject para injetar objeto como um parâmetro, ele não funciona por algum motivo: eu recebo exceções de referência nula.

(será queUserDataService não tem uma interface e estou ligando o objeto a si mesmo:kernel.Bind<UserDataService>().ToSelf(); ??)

Eu tenho outra linha comentada no código:

userDataService = DependencyResolver.Current
    .GetService<UserDataService>();

Quando isso é descomentado, a configuração funciona, recebo objetos corretos inseridos, mas agora dependemos do DependencyResolver e isso não é muito melhor do que dizeruserDataService = new UserDataService()

Estou esquecendo de algo? Existe outra maneira de injetar um objeto como parâmetro e não introduzir dependência em Ninject ou DependencyResolver?

questionAnswers(3)

yourAnswerToTheQuestion