À l'aide de ninject dependecyResolver pour les deux MVC et WebAPI
J'ai créé et MVC 4 web application et a décidé d'utiliser l'api web dans cette application.
Je suis en utilisant ninject solveur de dépendances pour MVC web app. et maintenant je veux profiter de cette ninject solveur de dépendances pour les api web.
mais le problème soulever ici mvc IDependencyResolver espace de noms est: using System.Web.Mvc
et web api IDependencyResolver est using System.Web.Http.Dependencies
alors, comment puis-je résoudre ce problème?
enfin je veux quelque chose comme ceci:
//Use the container and the NinjectDependencyResolver as
//application's resolver
var resolver = new NinjectDependencyResolver(container);
//Register Resolver for MVC
DependencyResolver.SetResolver(resolver);
//Register Resolver for Web Api
GlobalConfiguration.Configuration.DependencyResolver = resolver;
L'API Web solveur de dépendances, c'est une autre interface que le solveur de dépendances pour MVC est. Vous devrez créer une autre classe de l'API Web.
Je pense qu'il devrait y avoir un moyen, un pattrn. quelque chose comme un adaptateur. parce qu'ils ont en commun certaines de méthode dans leur interface!
La solution est simple, créer une classe qui implémente à la fois la
Liées dupliqué: stackoverflow.com/questions/21520417/...
Je pense qu'il devrait y avoir un moyen, un pattrn. quelque chose comme un adaptateur. parce qu'ils ont en commun certaines de méthode dans leur interface!
La solution est simple, créer une classe qui implémente à la fois la
System.Web.Mvc.IDependencyResolver
et System.Web.Http.IDependencyResolver
interface.Liées dupliqué: stackoverflow.com/questions/21520417/...
OriginalL'auteur Hashem Aboonajmi | 2014-01-16
Vous devez vous connecter pour publier un commentaire.
Il y a une façon de partager le même conteneur entre MVC et ASP.NET l'API Web.
Vous avez juste besoin d'implémenter deux interfaces.
Vérifier cet article pour solution:
Moyen Simple de partager de la Dépendance des Résolveurs entre MVC et Web API
OriginalL'auteur Nenad Hummingbird
Il y a un package NuGet qui fait cela. Ajouter le NInject, NInject.Web.Commune, NInject.MVCx et WebApiContrib.Cio.Ninject les packages NuGet à votre projet. Un NInjectWebCommon classe doit avoir été créé dans le App_Start dossier. Ajouter votre liaison pour vos dépendances à la RegisterServices méthode. Dans le CreateKernel méthode après la RegisterServices(noyau) appel, ajouter la ligne suivante:
Cela vous permettra de créer la dépendance Ninject résolveur sans avoir à créer votre propre remplacer classe. Facile, droit?
OriginalL'auteur bougiefever