如何注册实现 4 个接口的服务?
例如:class Foo : IFoo, IBar, IApp, ISee { ... }
我希望有这样的事情:
container.Register<IFoo, IBar, IApp, ISee, Foo>();
但似乎这个签名是为了将各种类型传递给工厂,在这种情况下,工厂需要 4 个参数。
如何注册实现 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() 实例。即网络请求。