【发布时间】:2015-10-25 05:46:36
【问题描述】:
我正在使用 MVC6 开发应用程序。我可以在启动文件中读取 JSON 配置并将其依赖注入到控制器中。
现在,我的要求是我想访问非控制器类中的配置。在这种情况下,我不能使用构造函数 DI。这些类驻留在 MVC6 应用程序的某个文件夹中,但它们不是模型或控制器类。
在此类非控制器类中访问配置的最佳方式是什么?
谢谢。
更新:
澄清一下 - 我不能在这些类中使用 DI。
这些类仅在需要时根据某些条件进行实例化,并在它们上调用方法。我需要从这些类/方法中访问 JSON 配置设置。所以,目前我只知道这些方法:
将 Startup 中的 Configuration 属性设为静态,这样我就可以说
Startup.Configuration["..."]。在读取 JSON 配置后从 Startup 设置自定义类的静态属性,然后访问这些静态属性。
这些替代品好吗(当然除了 DI)?还有其他方法吗?
【问题讨论】:
-
这些“非控制器类”是什么类?它们在哪里使用?他们的寿命是多少?
-
有些包含一些业务逻辑,有些是助手和实用程序。他们需要访问存储在配置文件中的设置。
-
然后将它们连接到 DI 系统并注入它们?
-
似乎您有一个错误的前提,即您不能将 DI 用于某些类型的类。您可以将它用于任何类型的类,而不仅仅是控制器和模型
-
我对尝试注入设置的类使用构造函数方法的地方然后抱怨我没有传递设置对象,所以他们需要一直链接到 DI控制器。对吗?
标签: c# asp.net-mvc asp.net-core-mvc