J'ai un objet avec deux paramètres qui doit être créé via Spring.NET en utilisant le fichier de configuration pour le découplage.Spring.NET Création d'un objet avec des paramètres
public Object(string param1, string param2) { ... }
Les deux paramètres sont transmises dynamiquement en fonction de l'interaction utilisateur où ils passent un nom d'utilisateur et mot de passe, de sorte que ces valeurs ne peuvent pas être codées en dur dans le fichier de configuration. Par conséquent, le suivant ne fonctionnera pas:
<object name="WinFormApplicationWorkflow" type="COM.Us.Workflow.ApplicationWorkflow, "COM.Us.Workflow ">
<!-- this will NOT work -->
<constructor-arg index="0" value="TESTUSER"></constructor-arg>
<constructor-arg index="1" value="TESTPW"></constructor-arg>
<!--/-->
<property name="NetworkWorkflow" ref="NetworkWorkflow" />
<property name="ExceptionLogger" ref="ExceptionLogger" />
</object>
Comment puis-je faire avec Spring.NET, afin que je puisse faire juste:
ContextRegister.GetContext().GetObject("WinFormApplicationWorkflow");
Mais encore passer dans les deux paramètres nécessaires à ma classe de workflow .
Maintenant c'est intéressant. Les docs disent que cette méthode peut renvoyer une instance partagée ou indépendante. Mais je ne vois pas comment cela peut être un singleton, parce que vous pouvez passer différents arguments constructeurs. Cela signifie-t-il que vous aurez toujours un nouvel objet? Ou vous singleton sera reconfiguré (sonne mal)? Ou vous obtiendrez des instances séparées par des arguments uniques? –
@Alexander: À mon avis, chaque appel GetObject() créera une nouvelle instance du type spécifié, appelant le constructeur qui correspond aux arguments donnés. – Jehof