StructureMap非原始类型的列表

时间:2010-04-07 19:26:49

标签: c# structuremap

我试图弄清楚如何设置StructureMap(使用XML配置文件)。一个类有一个构造函数,其中包含一个包含第二类实例的列表:

public interface ITestDocType { }

class TestDocType : ITestDocType
{
    public List<AttributeRef> AttrRefs { get; set; }

    public TestDocType(List<AttributeRef> attrRefs)
    {
        AttrRefs = attrRefs;
    }
}

public class AttributeRef
{
    public AttributeRef(string name, string xpath, string value)
    {
        Name = name;
        Xpath = xpath;
        Value = value;
    }

    public string Name { get; set; }
    public string Xpath { get; set; }
    public string Value { get; set; }
}

我希望能够在我的配置文件中内联AttributeRef的实例,但不能完全确定它是如何完成的(或者如果可能的话)。

<DefaultInstance PluginType="ITestDocType" PluggedType="TestDocType">
    <attrRefs>
       // Would like to specify one to many AttributeRef instances inline here
    </attrRefs>
</DefaultInstance>

1 个答案:

答案 0 :(得分:0)

好吧..我想出来了,它是described pretty nicely in the documentation ..我只需要阅读几次就可以完全理解。

  <DefaultInstance PluginType="yyy" 
               PluggedType="yyy">
      <attrRefs>
          <Child>
              <DefaultInstance PluginType="xxx"
                               PluggedType="xxx"
                               name="id" x
                               path="/item/@idd" 
                               attrValue="none">
              </DefaultInstance>
          </Child>
      </attrRefs>
  </DefaultInstance>

如您所见,“attrRefs”是构造函数中接受List的参数的名称,对于要添加到该列表的每个元素,将DefaultInstance元素包装在“Child”元素中。