1

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

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

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

但似乎这个签名是为了将各种类型传递给工厂,在这种情况下,工厂需要 4 个参数。

4

1 回答 1

3

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

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() 实例。即网络请求。

于 2018-03-20T20:10:15.720 回答