在Unity Configuration XML

时间:2015-08-13 12:26:10

标签: c# xml dependency-injection inversion-of-control unity-container

我需要初始化一个具有许多属性的对象。这些属性为IList<string>。我想通过配置文件添加字符串。我使用Unity配置XML,但我不确定XML语法来描述我想要实现的目标。

这是属性类:

public class MyClass : IMyClass
{
    public IList<string> Animals { get; set; }
    public IList<string> People { get; set; }
    public IList<string> Objects { get; set; }
}

到目前为止,这是我的XML(为简单起见使用非现实世界):

<unity xmlns="http://schemas.microsoft.com/practices/2010/unity">
  <container>
    <register>
      <register type="IMyClass" mapTo="MyClass">
        <property name="Animals">
           Somehow use <method> to `Insert` these strings to the properties IList
           Cat
           Dog
           Mouse
        </property>
        <property name="People">
           Bob
           Joe
           Jack
        </property>
        <property name="Objects">
           Chair
           Door
        </property>
      </register>
    </register>
  </container>
</unity>

根据MSDN调用方法,您使用此XML:

<register type="MyLogger">
    <method name="Initialize">
        <param name="loggerSettings" />
    </method>
</register>

但我不知道如何将方法调用与<property>标记混合使用。

如何编写XML以允许Unity调用要添加的属性上的方法?

1 个答案:

答案 0 :(得分:1)

here

<property name="Animals">
    <array>
        <value value="Cat"/>
        <value value="Dog"/>
        <value value="Mouse"/>
    </array>
</property>