Voici ma classe où les dépendances sont résoluesException dans Autofac: Aucun constructeur défini pour cet parameterless objet
namespace TestProj
{
public static class Bootstrapper
{
public static void Run()
{
SetAutofacWebAPI();
}
private static void SetAutofacWebAPI()
{
var builder = new ContainerBuilder();
builder.RegisterType<UserService>().As<IUserService>().InstancePerRequest();
builder.RegisterType<Encryption>().As<IEncryption>().InstancePerRequest();
DependencyResolver.SetResolver(new AutofacDependencyResolver(builder.Build()));
}
}
}
Dans le Global.asax, j'ai ceci: Bootstrapper.Run();
Voici ma classe UserService:
public class UserService : IUserService
{
private readonly IEncryption _Encryption;
public UserService(Encryption Encryption)
{
_Encryption = Encryption;
}
//Rest of the service here
}
la classe Encryption
est similaire.
Et le contrôleur est ici:
public class UserController : Controller
{
private readonly IUserService _UserService;
public AccountController(UserService UserService)
{
_UserService = UserService;
}
public JsonResult GetLoginLogs(int Id)
{
var Logs = _UserService.GetLoginLogById(Id);
return Json(Logs, JsonRequestBehavior.AllowGet);
}
//The rest of the controller
}
ici est la version info:
Autofac : 3.5.2
MVC : 4.0.40804.0
DOTNET : 4
Et puis, quand essayer localhost:5000/Account/GetLoginLogs/1
cette exception arrive :
Aucun constructeur sans paramètre défini pour cet objet.
Quelqu'un s'il vous plaît aider. Je suis sérieusement en difficulté!
Je pense que vous confondez comment injecter explicitement dans les classes. utiliser les interfaces au lieu des classes concrètes lors de l'injection dans les classes dépendantes – Nkosi
Vous avez enregistré 'UserService' comme' IUserService'. Vous avez également échoué à enregistrer vos contrôleurs MVC. – Amy
Vérifiez, le [lien] (https://stackoverflow.com/questions/19925290/dependencyresolver-setresolver-not-working), sur les mêmes lignes que Amy ci-dessus –