我正在研究Simple injector DI库。我需要关于如何注册在多个提供程序(组件)中使用的接口的好主意。
以下是我的要求。
这是Web API项目,我有一个BaggageController
类,它将获得Add Baggage
操作的请求。基于请求的提供者,我必须将请求路由到相关的类。提供者可以是Airline A
或Airline B
。
从客户请求AddBaggage(BaggageRequest,Provider) - > BaggageController - > Business.Baggage.Implementation(Decision) - >呼叫提供商A. - >致电提供商B
以下是我使用Simple injector注册的代码。
container.Register<IBaggageService, BaggageService>(Lifestyle.Scoped);
container.Register<IFlightService, ProviderA>(Lifestyle.Scoped);
// This next line throws an error as IFlightService is already registered.
container.Register<IFlightService, ProviderB>(Lifestyle.Scoped);
由于我的决定将在运行时进行,因此我无法使用RegisterConditional方法。
有没有其他方法可以在运行时使用Simple Injector注册依赖项?