依赖项注入非接口构造函数
本文关键字:接口 构造函数 注入 依赖 | 更新日期: 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"
));