LightInject - 如何将多个接口注册到单个服务



如何注册实现 4 个接口的服务?

例如:class Foo : IFoo, IBar, IApp, ISee { ... }

我希望有这样的事情: container.Register<IFoo, IBar, IApp, ISee, Foo>();

但似乎此签名用于将各种类型传递到工厂中,在本例中为采用 4 个参数的工厂。

对于那些如何也有同样的问题。这是解决它的一种可能方法:

container.Register(_ => new Foo(), new PerScopeLifetime());
container.Register<IFoo>(factory => factory.GetInstance<Foo>());
container.Register<IBar>(factory => factory.GetInstance<Foo>());
container.Register<IApp>(factory => factory.GetInstance<Foo>());
container.Register<ISee>(factory => factory.GetInstance<Foo>());

在我的特定情况下,我还需要确保每个范围内只有一个 Foo(( 实例。 即网络请求。

最新更新