2009-10-10 4 views
0

Je suis nouveau sur structuremap. :))Câblage automatique avec StructureMap, Injection Constructeur

J'ai une classe qui implémente IPresenter:

public class SoldierPresenter : IPresenter 
{ 
... 
public SolierPresenter(ISoldierView soldierView) 
{ 

} 
... 
} 

Quand j'appelle:

var presenters = ObjectFactory.GetAllInstances<IPresenter>(); 

Je reçois zéro cas ... ce que je suis absent ?!

Voici le code de configuration pour le conteneur:

Scan(
      scanner => 
       { 
        scanner.AssemblyContainingType(typeof(IShell)); 
        scanner.WithDefaultConventions(); 

        scanner.TheCallingAssembly(); 
        scanner.AddAllTypesOf<IPresenter>(); 

        scanner.WithDefaultConventions(); 
       }); 

Merci à l'avance, Erik.

Container.WhatDoIHave(); Affiche les éléments suivants:

IPresenter (DutyManager.Presentation.Framework.IPresenter) DutyManager.Presentation.SoldiersPresenter, DutyManager.Presentation, Version = 1.0.0.0, Culture = neutral, PublicKeyToken = null Configuré DutyManager.Presentation.SoldiersPresenter, DutyManager .Présentation, version = 1.0.0.0, Culture = neutre, PublicKeyToken = null
Scoped que: PerRequest


ISoldiersView (DutyManager.Presentation.ISoldiersView) DutyManager.Presentation.SoldiersView, DutyManager.Presentation, version = 1,0 .0.0, Culture = neutre, PublicKeyToken = null DutyManager.Pr esentation.SoldiersView, DutyManager.Presentation, Version = 1.0.0.0, Culture = neutral, PublicKeyToken = null
Scoped comme: PerRequest

Répondre

2

Votre exemple de code ne fournit pas suffisamment d'informations. Configurez-vous le conteneur appartenant à ObjectFactory ou créez-vous votre propre instance de Container? ObjectFactory peut uniquement accéder à son propre conteneur.

Vous essayez d'appeler GetAllInstances sur ObjectFactory, mais vous appelez WhatDoIHave on Container. Il n'est pas clair quel conteneur vous configurez avec l'instruction "Scan" que vous avez incluse.

En utilisant le code que vous avez fourni (et en supposant que ObjectFactory soit utilisé), je n'ai pas réussi à reproduire votre problème. Assurez-vous de toujours utiliser le même conteneur.

Si cela ne résout pas votre problème, vous pourriez envisager de poster sur le StructureMap mailing list, où les utilisateurs de StructureMap attireront davantage l'attention.

+0

Joshua a raison, il n'y a pas assez d'informations pour diagnostiquer le problème. –

Questions connexes