2013-07-20 5 views
0

J'ai beaucoup de mal à faire fonctionner structuremap pour fonctionner correctement avec asp.net mvc 4. Maintenant, je sais que ça marche (je l'avais travaillé avant, mais je n'ai pas accès à cette base de code particulière plus). J'ai une bibliothèque pour cette solution qui a un tas de classes de référentiel et il y a actuellement quelques classes de registre Structuremap pour la mise en place des dépôts et quelques autres choses. Maintenant, sur le côté Web, je peux initialiser cette partie très bien et j'ai prouvé que cela fonctionne en appelant ObjectFactory.GetInstance dans une de mes classes de contrôleur. Je suis en mesure d'obtenir la liste des utilisateurs. Cependant, j'ai besoin d'une injection de constructeur pour fonctionner avec les contrôleurs. J'ai installé le package structuremap mvc 4, et j'ai remarqué qu'il mettait du contenu dans App_Start et dans quelques autres endroits. Rien n'a été placé dans Global.asax. Devrait-il y avoir quelque chose pour mettre le conteneur en place pour MVC? Ou est-ce que je manque une autre étape subtile ici?StructureMap ASP.NET MVC 4 question

Répondre

0

Après quelques problèmes, je l'ai résolu. J'avais auparavant un objet, appelé Bootstrapper, qui faisait toute la configuration du CIO. J'ai donc dû modifier StructureMapMvc.cs à ce qui suit (en lui disant d'utiliser le conteneur existant):

public static class StructuremapMvc { 
    public static void Start() 
    { 
     Bootstrapper.Bootstrap(); 
     var container = ObjectFactory.Container; 
     DependencyResolver.SetResolver(new StructureMapDependencyResolver(ObjectFactory.Container)); 
     GlobalConfiguration.Configuration.DependencyResolver = new StructureMapDependencyResolver(container); 
    }