2010-07-08 17 views
0

Salut à tous Im en utilisant windsor comme un conteneur de DI,asp.net projet de test mvc ne peut pas trouver le fichier windsor

mon code est ci-dessous

public static class ContainerBuilder 
    { 
     public static IWindsorContainer Build() 
     { 
      var container = new WindsorContainer("Configuration\\Windsor.config"); 



      // automatically register controllers 
      container.Register(AllTypes 
            .Of<Controller>() 
            .FromAssembly(Assembly.GetExecutingAssembly()) 
            .Configure(c => c.LifeStyle.Transient.Named(c.Implementation.Name.ToLower()))); 

      container.Register(


       Component.For<IServiceLocator>().Instance(new WindsorServiceLocator(container)), 
       Component.For(typeof(IRepository<>)).ImplementedBy(typeof(NHibernateRepository<>)).LifeStyle.Transient 

       ); 


      return container; 
     } 
    } 

Je dois appeler cela à partir d'un projet de test, le problème est-ce que quand je fais ceci le windsor.config n'est jamais trouvé et le test semble toujours échouer, où est le meilleur moyen de placer ce fichier de configuration ou y at-il une meilleure approche pour faire cela? Merci

Répondre

0

Simplifiez la configuration du chemin de configuration, par ex.

public static IWindsorContainer Build(string configPath) { 
    var container = new WindsorContainer(configPath); 
    ... 
} 

Dans votre application est le configpath "Configuration \ Windsor.config" alors que dans vos tests, vous aurez un chemin comme ".... \ Configuration \ Windsor.config".

Notez que vous ne devriez généralement pas dépendre du conteneur dans vos tests, sauf si vous exécutez des tests d'intégration.

En outre, un constructeur de conteneur statique ne semble pas être une bonne idée, jetez un oeil à Windsor Installers pour enregistrer vos composants de manière modulaire.

+0

Salut Mauricio Merci pour la réponse, oui je cours des tests d'intégration. Tous les exemples que j'ai vus concernant windsor utilise un conteneur statique, quel est l'avantage des installateurs windsor – Matthew

+0

@Matthew: modularité. Je recommande de vérifier http://www.castlecasts.com –