gpt4 book ai didi

c# - RegisterType() 调用中的 InjectionMembers 有什么用?

转载 作者:IT王子 更新时间:2023-10-29 04:13:05 24 4
gpt4 key购买 nike

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

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

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

我是不是漏掉了什么?它们不常用还是我只是错过了示例?

最佳答案

InjectionMember 数组的重载被使用,当你没有提供一个配置文件,Unity 告诉如何创建一个给定类型的实例,或者如果你想通过其他方式创建一个实例比配置文件中定义的要多。

当你想在没有配置文件的情况下配置一个统一容器时,使用重载。 InjectionMember 可以是构造函数、属性或方法调用。

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

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

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

<type type="MyObject" mapTo="MyObject" name="MyObject">
<typeConfig extensionType="Microsoft.Practices.Unity.Configuration.TypeInjectionElement, Microsoft.Practices.Unity.Configuration">
<constructor>
<param name="someInt" parameterType="int">
<value value="12"/>
</param>
<param name="someText" parameterType="string">
<value value="Hello Unity!"/>
</param>
</constructor>
<property name="MyStringProperty" propertyType="string">
<value value="SomeText"/>
</property>
</typeConfig>
</type>

关于c# - RegisterType() 调用中的 InjectionMembers 有什么用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1550007/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com