依赖项注入非接口构造函数

本文关键字:接口 构造函数 注入 依赖 | 更新日期: 2023-09-27 18:30:11

我正在使用Unity,并希望执行以下操作:我基本上希望将值类型传递到基构造函数中。

这是一个典型的InterfaceL

public interface Irepo
{
void test();
}

这是已实现的类,我希望还能够将非接口注入构造函数。这可能吗?

public class Repo : baseRepo, Irepo
{
public Repo(IOther other, string username) : base(username)
{}
public void test(){}
}

这是这个单元配置:

container.RegisterType<Irepo, Repo>();
container.RegisterType<IOther , Other>();

我试过了,但它说Repo没有一个需要字符串的参数。有人有什么想法吗?

container.RegisterType<Irepo, Repo>("user", new InjectionConstructor("user"));

依赖项注入非接口构造函数

如果您提供InjectionConstructor来为构造函数提供参数,那么您需要提供所有参数,即使它们本身是注册接口。

container.RegisterType<Irepo, Repo>("user", new InjectionConstructor(
    container.Resolve<IOther>(),
    "user"
));