Mise à JOUR - Merci de regarder ma réponse pour un lien et l'explication de la solution à ce problème
Avant de commencer, je sais que c'est une question très fréquente et j'ai été en utilisant Ninject pour de nombreuses lunes sans problèmes, mais maintenant il est venu et je ne peux pas comprendre un correctif. Aussi, aucun, aucun des résultats sur Google et AINSI de si loin m'ont aidé.
Donc, considérez le code suivant exécute sur un très, très, très simple prototype ASP.NET MVC 4 projet de Visual Studio 2012 sur Windows Server 2008 R2:
public class DefaultController : Controller {
private IGroupPrincipalRepository GroupPrincipalRepository { get; set; }
[Inject]
public DefaultController(
IGroupPrincipalRepository groupPrincipalRepository) {
this.GroupPrincipalRepository = groupPrincipalRepository;
}
}
Et voici l' NinjectWebCommon.cs RegisterServices
méthode:
kernel.Bind(typeof(IGroupPrincipalRepository)).ToConstructor(
c =>
new GroupPrincipalRepository(new PrincipalContext(ContextType.Domain, "?", "?", "?", "?"))).InSingletonScope();
Maintenant, c'est comment mes autres projets qui utilisent Ninject (mais sont ASP.NET MVC 3 sur .NET 4) les travaux et pour autant que je sais que c'est ce qui est nécessaire pour faire fonctionner le tout. Alors, pourquoi suis-je tout d'un coup se Pas de constructeur sans paramètre défini pour cet objet. des exceptions?
Mise à JOUR
Voici l'intégralité NinjectWebCommon.cs
le fichier:
[assembly: WebActivator.PreApplicationStartMethod(typeof(App_Start.NinjectWebCommon), "Start")]
[assembly: WebActivator.ApplicationShutdownMethodAttribute(typeof(App_Start.NinjectWebCommon), "Stop")]
namespace App_Start {
using System;
using System.DirectoryServices.AccountManagement;
using System.Repositories.ActiveDirectory;
using System.Web;
using Microsoft.Web.Infrastructure.DynamicModuleHelper;
using Ninject;
using Ninject.Web.Common;
public static class NinjectWebCommon {
private static readonly Bootstrapper bootstrapper = new Bootstrapper();
public static void Start() {
DynamicModuleUtility.RegisterModule(typeof(OnePerRequestHttpModule));
DynamicModuleUtility.RegisterModule(typeof(NinjectHttpModule));
bootstrapper.Initialize(CreateKernel);
}
public static void Stop() {
bootstrapper.ShutDown();
}
private static IKernel CreateKernel() {
var kernel = new StandardKernel();
kernel.Bind<Func<IKernel>>().ToMethod(ctx => () => new Bootstrapper().Kernel);
kernel.Bind<IHttpModule>().To<HttpApplicationInitializationHttpModule>();
RegisterServices(kernel);
return kernel;
}
private static void RegisterServices(
IKernel kernel) {
kernel.Bind(typeof(IGroupPrincipalRepository)).ToConstructor(
c =>
new GroupPrincipalRepository(new PrincipalContext(ContextType.Domain, "", "", "", ""))).InSingletonScope();
}
}
}
Mise à JOUR - Merci de regarder ma réponse pour un lien et l'explication de la solution à ce problème