Autofac-将具有NamedParameter的Keyed服务注入到构造函数中

问题描述 投票:0回答:1

我在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
1个回答
1
投票

[NamedServiceKeyedService的专用版本,其中密钥的类型为String

两者

© www.soinside.com 2019 - 2024. All rights reserved.