c# – 如何将配置传递给ASP.NET MVC6中的非控制器类

我正在使用MVC6开发一个应用程序.我可以在启动文件中读取
JSON配置,并将依赖项注入控制器中.

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

在这种非控制器类中访问配置的最佳方法是什么?

谢谢.

更新:

只是为了澄清 – 我不能在这些课程中使用DI.

这些类仅在需要时基于某些条件进行实例化,并且在它们上调用方法.我需要从这些类/方法中访问JSON配置设置.所以,我只知道这些方式:

>将Startup的Configuration属性设置为static,以便我可以说Startup.Configuration [“…”].
>在读取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用他的回答给我这个想法)

点赞