我需要将一个IList<IActivity>
类型的集合注入到构造函数中。我正在使用Unity 2.0并使用XML进行配置。如何使用Unity 2 XML配置注入通用IList <>对象?
我能够通过在Unity 1.2中注入数组来完成此操作。我刚刚升级到Unity 2.0,现在我的配置已停止在此特定区域工作。 (我已经解决了所有的架构琐碎的变化)
我的构造是这样的:
public DoSomethingWorkflow(IList<IActivity> activityCollection)
{
...
}
我的配置是这样的:
<alias alias="IListOfIActivity" type="System.Collections.Generic.IList`1[[MyProject.IActivity, MyProject]], mscorlib"/>
<alias alias="IActivityArray" type="MyProject.IActivity[], MyProject" />
<register type="IWorkflow" mapTo="Workflow" name="DoSomethingWorkflow">
<constructor>
<param name="activityCollection" type="IListOfIActivity">
<array>
<dependency name="DoSomethingActivity1"/>
<dependency name="DoSomethingActivity2"/>
</array>
</param>
</constructor>
</register>
如果我跑的配置如上我收到一条错误消息,说“该配置设置为注入数组,但IList`1类型不是阵列类型”。
如果我将其更改为它用来工作(注射型别名IActivityArray)我得到一个错误消息说“配置是不正确的方式,类型MyProject.Workflow没有一个构造函数的参数命名activityCollection ”。
如果我完全从构造函数元素中删除了type属性,我会得到与上面相同的错误消息。
我能得到这个工作的唯一方法是改变构造函数来接受一个IActivity []数组。
所以这是在Unity中的错误,因为数组是一个IList,应该找到构造函数?或者我错过了我的配置中的东西?
大,我刚刚拿到了这个的风滚草徽章!谁能帮忙? – freshr 2010-10-29 12:23:56
你有没有想过这个? – 2011-09-19 06:54:48