【发布时间】:2020-02-19 15:53:05
【问题描述】:
我在 Autofac 中注册了一个 Keyed 服务,我想通过构造函数注入它。 服务已注册
builder.Register((ctx, par) =>
{
var namedParameter = par.Named<string>("myNamedParameter");
... configuration and instantiation ...
}).Keyed<IMyService>(myKey);
目前正在明确解决
public class MyConsumer {
private readonly IMyService _myService;
//current
public MyConsumer(ILifetimeScope scope) {
_myService = _scope.ResolveKeyed<IMyService>(myKey, new NamedParameter("myNamedParameter", "parameterValue"));
}
//preferred
public MyConsumer(IMyService myService) {
_myService = myService;
}
}
但是,我还没有找到一种方法在构建过程中注入服务。 Autofac 的KeyFilterAttribute 只接受一个密钥;它似乎不允许NamedParameters。这可能吗?
【问题讨论】:
标签: c# dependency-injection autofac