我在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
。这可能吗?
[NamedService
是KeyedService
的专用版本,其中密钥的类型为String
。
两者