Passer des arguments de constructeur lors de l’utilisation de StructureMap

J’utilise StructureMap pour mes DI. Imagine que j’ai une classe qui prend 1 argument comme:

public class ProductProvider : IProductProvider { public ProductProvider(ssortingng connectionSsortingng) { .... } } 

Je dois spécifier le “connectionSsortingng au moment de l’exécution lorsque je reçois une instance de IProductProvider.

J’ai configuré StructureMap comme suit:

 ForRequestedType.TheDefault.Is.OfConcreteType(). WithCtorArgument("connectionSsortingng"); 

Cependant, je ne veux pas appeler la méthode EqualTo (“quelquechose …”) ici car j’ai besoin de quelque facilité pour spécifier dynamicment cette valeur au moment de l’exécution.

Ma question est la suivante: comment puis-je obtenir une instance de IProductProvider en utilisant ObjectFactory?

Actuellement, j’ai quelque chose comme:

 ObjectFactory.GetInstance(); 

Mais comme vous le savez, cela ne fonctionne pas …

Tout avis serait grandement apprécié.

Je suggère de le déclarer avec la configuration de StructureMap. En utilisant le code StructureMap légèrement plus récent:

 For().Use .Ctor("connectionSsortingng").Is(someValueAtRunTime); 

De cette façon, votre code client n’a pas à connaître la valeur et votre configuration IoC peut être séparée de votre code principal.

J’ai trouvé la réponse moi-même! Voici la solution:

 ObjectFactory.With("connectionSsortingng").EqualTo(someValueAtRunTime).GetInstance(); 

J’espère que cela aidera les autres qui ont rencontré le même problème.