首页 > 解决方案 > 是否可以根据请求参数注入作用域依赖项?

问题描述

我正在尝试设置一个多租户应用程序,其中后端根据请求区域设置与同一服务的多个环境进行对话。因为这些环境都有自己的客户端,所以我目前有一个ClientProvider类可以为每个语言环境返回正确的客户端。但是,这让我ClientProvider.ProvideForLocale()到处打电话,这有点使代码 IMO 膨胀。

相反,我想使用 DI 框架根据请求中提供的语言环境注入一个请求范围的客户端,但我似乎不知道该怎么做。这甚至可能吗?

标签: .net-core

解决方案


依赖注入的全部目的是将这些依赖注入到对象的构造函数中。我假设您的应用程序是基于 MVC 的 API。对于 MVC 应用程序,调用该构造函数并在处理任何请求之前注入所有依赖项。

如果您想减少代码膨胀,请查看 OnActionExecuting 事件。我认为它会做你想要的。

您可以在此处查看以前的 Stack Overflow 帖子: 在每个控制器操作之前/之后执行代码


推荐阅读