Spring.NET Создание объекта с параметрами - PullRequest
1 голос
/ 18 сентября 2009

У меня есть объект с двумя параметрами, который необходимо создать через Spring.NET с использованием файла конфигурации для развязки.

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

Два параметра динамически передаются на основе взаимодействия с пользователем, когда они передают имя пользователя и пароль, поэтому эти значения нельзя жестко закодировать в файле конфигурации. Поэтому следующее не будет работать:

<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>

Как я могу сделать это с Spring.NET, чтобы я мог просто сделать:

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

Но все же передайте два необходимых параметра моему классу рабочего процесса.

1 Ответ

2 голосов
/ 19 сентября 2009

Вы можете использовать перегруженный метод GetObject (string, object []) интерфейса Spring.Objects.Factory.IObjectFactory для передачи динамических значений для создания объекта.

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

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