c# - 如何将配置传递给 ASP.NET MVC6 中的非 Controller 类

标签 c# asp.net-mvc asp.net-core-mvc

我正在使用 MVC6 开发应用程序。我可以读取启动文件中的 JSON 配置,并将依赖项注入(inject)到 Controller 中。

现在,我的要求是我想访问不是 Controller 的类内部的配置。在这种情况下我不能使用构造函数 DI。这些类驻留在 MVC6 应用程序的某个文件夹中,但它们不是模型或 Controller 类。

在此类非 Controller 类中访问配置的最佳方式是什么?

谢谢。

更新:

澄清一下 - 我不能对这些类使用 DI。

这些类仅在需要时根据某些条件实例化,并调用它们的方法。我需要从这些类/方法中访问 JSON 配置设置。所以,目前我只知道这些方法:

  1. 将 Startup 的 Configuration 属性设为静态,这样我就可以说 Startup.Configuration["..."]

  2. 读取 JSON 配置后从 Startup 设置自定义类的静态属性,然后访问这些静态属性。

这些替代品好吗(当然 DI 除外)?还有其他方法吗?

最佳答案

我要做的是创建一个这样的注册服务方法:

 public static void AddMyTools(this IServiceCollection services, IConfiguration config){
      //Save the config in the class
 }

在这个静态方法中,我将在这个静态类中存储我需要的配置。

然后在 Startup.cs 中,我将使用我的工具的命名空间,然后在 ConfigureServices 部分中,我将像这样添加我的工具:

 services.AddMyTools(Configuration); 

希望对你有帮助。我没试过,也许有一些改变,但你有全局的想法。 (我正在搜索这个,@Sam Farajpour Ghamari 通过他的回答告诉了我想法)

关于c# - 如何将配置传递给 ASP.NET MVC6 中的非 Controller 类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31781880/

相关文章:

c# - $.connections 无法读取未定义的集线器 (SignalR)

asp.net-mvc - 在ASP.NET MVC中封装用户控件

asp.net-mvc - MVC 添加对 View 的引用

c# - 使用 mvc 身份注册电话号码而不是电子邮件

c# - 在 Controller 外使用 HttpContext

c# - 如何创建GraphServiceClient?

c# - 如何自定义 JSON 序列化?

c# - 使用 Clean Architecture 从 ApplicationCore 库中的实体引用基础设施库中的 ApplicationUser

c# - ASP.NET Core 3 MVC 路由参数不起作用

c# - Telerik MVC Extensions Grid - 如何将网格过滤器应用于初始 LINQ 查询或传递到数据库?