Ceci est similaire à la question posée à StructureMap - Override constructor arguments for a named instance, mais différent dans le respect que je ne connais pas le type à codage du temps et ne peut donc pas utilisez la forme générique de GetInstance().Le passage des arguments du constructeur à une instance nommée dans le plan de la structure où le type est connu que lors de l'exécution
Ainsi, alors que:
ObjectFactory.With(IFoo).GetInstance<IBar>("foobar");
fonctionnera, il n'y a apparemment aucun moyen d'appeler:
ObjectFactory.With(IFoo).GetInstance(typeof(IBar), "foobar");
J'ai une solution en utilisant une méthode générique privée et la MakeGenericMethod() sur cette méthode privée de MethodInfo.
Comme vous pouvez l'imaginer, je ne suis pas vraiment satisfait de cette approche, mais je ne vois pas d'autre moyen de sortir de la situation.
Merci pour la réponse. Je suis en train de programmer IContainer (ce que je crois être l'approche préférée). GetNamedInstance() ne fait pas partie de l'interface. Il semble que les surcharges de GetInstance() remplacent GetNamedInstance(). Je vais probablement faire un patch, mais je veux vraiment m'assurer que je n'ai pas manqué quelque chose d'abord. –