Question

J'ai un objet avec deux paramètres qui doit être créé via Spring.NET à l'aide du fichier de configuration pour le découplage.

public Object(string param1, string param2) { ... }

Les deux paramètres sont passés dynamiquement en fonction de l’interaction de l’utilisateur où ils transmettent un nom d’utilisateur et un mot de passe. Ces valeurs ne peuvent donc pas être codées en dur dans le fichier de configuration. Par conséquent, les éléments suivants ne fonctionneront 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 cela avec Spring.NET afin de pouvoir simplement faire:

ContextRegister.GetContext().GetObject("WinFormApplicationWorkflow");

Mais transmettez toujours les deux paramètres nécessaires à ma classe de flux de travail.

Était-ce utile?

La solution

Vous pouvez utiliser la méthode surchargée GetObject (string, object []) de l'interface Spring.Objects.Factory.IObjectFactory pour transmettre vos valeurs dynamiques pour la création d'objets.

string userName = "Test";
string password = "Test";
object[] arguments = new object[] { userName, password };

ContextRegister.GetContext().GetObject("WinFormApplicationWorkflow", arguments);
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top