سؤال

ولدي كائن مع معلمتين التي تحتاج إلى أن تنشأ عن طريق 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");

ولكن لا يزال يمر في المعلمتين اللازمة لصفي سير العمل.

هل كانت مفيدة؟

المحلول

يمكنك استخدام الأسلوب طاقتها GETOBJECT (سلسلة، يعترض []) من Spring.Objects.Factory.IObjectFactory واجهة لتمرير القيم الديناميكية لإنشاء الكائن.

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

ContextRegister.GetContext().GetObject("WinFormApplicationWorkflow", arguments);
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top