문제

디커플링을 위해 구성 파일을 사용하여 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 (String, Object [])를 사용할 수 있습니다. 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