J'ai un projet pour lequel j'utilise StructureMap pour une injection de dépendance. Le projet compile une amende en tant que projet MVC, mais après tout déplacer sur un projet MVC2, je reçois maintenant l'erreur suivante:
Test.Web.Controls.StructureMapControllerFactory.getControllerInstance (System.tPe) ': Aucune méthode appropriée trouvée à Remplacement C: \ Test \ Web \ Controlers \ StructureMapControllerFactory.cs 11 40 Test.Web P> blockQquote>
voici mon structureMapControllerFactory: p>
xxx pré> J'ai trouvé un post semi-lié à ce problème, mais cela n'a proposé aucun aperçu de la façon de résoudre Mon problème: MVC 2 Aperçu 1 - Les méthodes avec les paramètres du contrôleur ne parviennent pas à charger p>
évidemment, je dois manquer une modification de la progression 1.0-2.0, mais je ne suis pas sûr de ce qui a changé. Toute aide est toujours appréciée. P> p>
3 Réponses :
La signature de cette méthode a changé. Il y a maintenant un premier argument de requestContext: Vous devez également modifier votre appel en base.getControllerInstance: p>
Merci beaucoup craig. Je me demande pourquoi cela ne se reflète pas dans le navigateur d'objet VS lors de l'exploration de l'espace de noms System.Web.MVC [2.0.0.0].
Pas sûr, mais vous pouvez taper OV [Spacebar] dans l'éditeur de code (c'est-à-dire commencer à taper "remplacement" lorsque vous déclarez normalement une nouvelle méthode) pour obtenir la liste des méthodes surcharges pour la classe actuelle avec leurs signatures.
Je l'ai traqué avec le réflecteur et la signature de fonction est modifiée. le p>
Icône virtuel interne protégé GetControllerInstance (DemandeContext DemandeContext, Type ContratType) Strort> P>
La DLL MVC 2 réside ici:
C: \ Fichiers de programme \ Microsoft asp.net \ asp.net mvc 2 \ assemblages \ system.web.mvc.dll p>
Merci, cela a résolu mon problème! p>
Craig Stuntz est très correct ici. P>
Assurez-vous simplement de ne pas oublier de référencer System.Web.Routez-vous en plus si votre DI est dans un projet différent de votre application MVC. P>
Pour une raison quelconque, il n'y avait aucune erreur montrant dans l'IDE pour moi, mais sur la compilation, je voudrais toujours obtenir un getControllerInstance "Aucune méthode appropriée trouvée à remplacer." P>
Une fois que j'ai corrigé l'assemblage référencé manquant de System.Web.Routing, tout allait bien ... p>
Merci!. Je ne sais pas encore pourquoi, mais ajoute une référence à System.Web.Routting résolu cela pour moi!
Merci pour le System.Web.Routez le commentaire - m'a sauvegardé le débogage de temps.