RegisterType()中的InjectionMembers是什么?

我一直在使用Microsoft的Unity IOC容器。 RegisterType()方法有一堆重载,看起来类似于

 IUnityContainer RegisterType(Type t, params InjectionMember[] injectionMembers); 

我想知道injectionMembers参数何时用于? 我找不到任何关于它们的文档(即使它们在每次重载中都没有),我看过的示例代码都没有使用它们。

我在这里错过了什么吗? 它们不常用或者我只是错过了这些例子吗?

当您没有提供Unity告诉如何创建给定类型的实例的配置文件,或者您希望通过除配置文件中定义的方式之外的其他方式创建实例时,将使用InjectionMember数组的重载。

如果要在没有配置文件的情况下配置统一容器,则使用重载。 InjectionMember可以是构造函数,属性或方法调用。

以下代码取自Unity帮助,显示了如何通过容器的流畅界面使用InjectionMembers

 IUnityContainer myContainer = new UnityContainer(); myContainer.Configure() .ConfigureInjectionFor( new InjectionConstructor(12, "Hello Unity!"), new InjectionProperty("MyStringProperty", "SomeText")); 

以下XML配置等同于上面的代码。

                

另请注意,尽管它们出现在每次重载中,但它们并不是必需的。

我认为这是有效的,因为InjectionMemeber是一个数组类型,并且是最后一个参数,所以你可以有零个或多个逗号分隔值,并且数组自动神奇地组装…