正如标题所述:什么(如果可用)是Unity 2中<typeConfig />
元素的替换?
或者:如何在Unity配置中为类配置类型参数?
<alias alias="ISomeInterface" type="Namespace.ISomeInterface" />
<alias alias="SomeType" type="Namespace.SomeType`1" />
<alias alias="Foo" type="Namespace.Foo" />
<alias alias="Bar" type="Namespace.Bar" />
<container>
<register type="ISomeInterface" mapTo="SomeType" name="GenericFoo">
<!-- define generic type as Foo -->
</register>
<register type="ISomeInterface" mapTo="SomeType" name="GenericBar">
<!-- define generic type as Bar -->
</register>
</container>
答案 0 :(得分:2)
&lt; typeConfig&gt;简单地删除了元素 - 它是一层XML,实际上并没有向配置文件添加任何噪声。您之前嵌套在typeConfig中的内容(如&lt; constructor&gt;,&lt; param&gt;等)现在被放置为&lt; register&gt;的子项。元件。
至于你的例子,你需要将泛型类型参数指定为mapTo参数的一部分,如下所示:
<register type="ISomeInterface" mapTo="SomeType[Foo]" name="GenericFoo" />
<register type="ISomeInterface" mapTo="SomeType[Bar]" name="GenericBar" />
或者你可以使用CLR泛型类型语法(带有`1等的版本),但这比Unity在这里实现的快捷语法要吵得多。
注意:当然,您上面的别名将无法使用,因为您没有在其中包含程序集名称,因此在您计算出这些详细信息之前,此解决方案将无法运行。另外,请考虑使用&lt; assembly&gt;和&lt; namespace&gt;配置文件中的声明,以消除对大量别名的需要。