我有一个类在构造函数中接收接口和字符串参数:
public MyClass(IService service, string config) : IMyClass
在Autofac中,界面已注册:
builder.RegisterType<Service>()
.As<IService>()
.InstancePerRequest();
MyClass
也在WithParameter
方法中注册了字符串参数:
builder.RegisterType<MyClass>()
.As<IMyClass>()
.WithParameter("config", parameters["Config"]);
但是如何将已经解析的IService
接口对象传递给MyClass
构造函数?
我原以为上面使用IService
的注册就足够了,但是当使用WithParameter
方法时,我显然需要以相同的方式声明所有参数。
答案 0 :(得分:1)
我原以为上面使用的IService注册是 足够
你的假设是正确的。
当使用WithParameter方法时,我显然需要声明all 参数相同。
您无需将service
参数与config
参数一起传递。容器会为你解决它。
以下两行就足够了 -
builder.RegisterType<Service>().As<IService>().InstancePerRequest();
builder.RegisterType<MyClass>().As<IMyClass>()
.WithParameter("config", parameters["Config"]).InstancePerRequest();