gpt4 book ai didi

c# - 用于多参数构造函数的 Unity InjectionConstructor 仅覆盖单个构造函数

转载 作者:IT王子 更新时间:2023-10-29 03:55:39 27 4
gpt4 key购买 nike

我有一个类的构造函数是这样的:

public class Bar
{
public Bar(IFoo foo, IFoo2 foo2, IFoo3 foo3, IFooN fooN, String text)
{

}
}

我想在 Unity 中注册 Bar 并为文本提供一个值:

unity.RegisterType<Bar, Bar>(new InjectionConstructor("123"));

但是我不能这样做,因为 Bar 没有单参数构造函数。

有没有办法在不将所有其他参数指定为 ResolvedParameter<IFooN> 的情况下为文本提供值?等等。我真的不喜欢它,很多代码,每次我更改 Bar 的构造函数时,我都需要添加另一个 ResolvedParameter

最佳答案

Unity 无法开箱即用。你能做的最好的事情是:

container.RegisterType<Bar>(
new InjectionConstructor(
typeof(IFoo), typeof(IFoo2), typeof(IFoo3), typeof(IFooN), "123"));

或者你可以使用TecX提供的SmartConstructor项目。 This blog post描述了一些背景。

注册看起来像这样:

container.RegisterType<Bar>(new SmartConstructor("text", "123"));

关于c# - 用于多参数构造函数的 Unity InjectionConstructor 仅覆盖单个构造函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11866643/

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