我正在使用 MVC6 开发应用程序。我可以读取启动文件中的 JSON 配置,并将依赖项注入(inject)到 Controller 中。
现在,我的要求是我想访问不是 Controller 的类内部的配置。在这种情况下我不能使用构造函数 DI。这些类驻留在 MVC6 应用程序的某个文件夹中,但它们不是模型或 Controller 类。
在此类非 Controller 类中访问配置的最佳方式是什么?
谢谢。
更新:
澄清一下 - 我不能对这些类使用 DI。
这些类仅在需要时根据某些条件实例化,并调用它们的方法。我需要从这些类/方法中访问 JSON 配置设置。所以,目前我只知道这些方法:
将 Startup 的 Configuration 属性设为静态,这样我就可以说
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 通过他的回答告诉了我想法)
关于c# - 如何将配置传递给 ASP.NET MVC6 中的非 Controller 类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31781880/