如何注册实现 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(( 实例。 即网络请求。