代码之家  ›  专栏  ›  技术社区  ›  mirezus

spring.net使用参数创建对象

  •  1
  • mirezus  · 技术社区  · 15 年前

    我有一个对象,其中有两个参数需要使用配置文件通过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 回复  |  直到 13 年前
        1
  •  2
  •   Jehof    15 年前

    您可以使用 spring.objects.工厂.iobjectFactory 用于为对象创建传递动态值的接口。

    string userName = "Test";
    string password = "Test";
    object[] arguments = new object[] { userName, password };
    
    ContextRegister.GetContext().GetObject("WinFormApplicationWorkflow", arguments);