Erreur “CommentsController ne possède pas de constructeur par défaut”

Problème:
Je suis en utilisant MVC4 WebAPI et je suis de lancer une erreur lors d'un Get() de l'appel.

Erreur:

Système.ArgumentException: Type 'Comments2.Les contrôleurs.CommentsController " n'a pas de constructeur par défaut

StackTrace:

at System.Linq.Expressions.Expression.New(Type type)
at System.Web.Http.Internal.TypeActivator.Create[TBase](Type instanceType)
at System.Web.Http.Dispatcher.DefaultHttpControllerActivator.Create(HttpRequestMessage request, HttpControllerDescriptor controllerDescriptor, Type controllerType)"}

Je suis heureux de vous donner tout le code nécessaire tout simplement laissez-moi savoir ce que vous aimeriez voir.

Contrôleur:

namespace Comments2.Controllers 
{
    //[Authorize]
    public class CommentsController : ApiController 
    {
        ICommentRepository repository;

    public CommentsController(ICommentRepository repository) 
    {
        this.repository = repository;
    }

    [Queryable]
    public IQueryable<Comment> GetComments()
    {
        return repository.Get().AsQueryable();
    }

    public Comment GetComment(int id)
    {
        Comment comment;
        if (!repository.TryGet(id, out comment))
            throw new HttpResponseException(new HttpResponseMessage(HttpStatusCode.NotFound));
        return comment;
    }
}

JavaScript:

$(function() {
    $("#getComments").click(function () {
        //We're using a Knockout model. This clears out the existing comments.
        viewModel.comments([]);

        $.get('/api/comments', function (data) {
            //Update the Knockout model (and thus the UI) with the comments received back 
            //from the Web API call.
            viewModel.comments(data);
        });

    });
});
Avez-vous correctement configuré un conteneur d'injection de dépendances, et l'a lancé à partir du démarrage de l'application? Avez-vous configurer une instance de ICommentRepository à injecter?
Je n'ai pas. Serait-il préférable pour l'utilisateur de l'Unité ou de la Ninject? Ce sont les deux seuls je suis intéressé par l'utilisation, je comprends le concept de la Coi et DI mais je suis en train d'apprendre à l'utiliser avec MVC4 et WebAPI ...dois-je ajouter que via NuGet?

OriginalL'auteur Computer Guy | 2012-07-15