【发布时间】:2018-02-23 13:25:27
【问题描述】:
在启动文件中,我需要一种方法来访问另一个项目中的 IConfiguration。我被告知业务逻辑不应该知道 IConfiguration。如果是这样的话,那么我如何将数据从 appsettings 注入到业务逻辑项目中。
appsettings.json
{
"AdminEmail": "myemail@gmail.com"
}
如何访问我在同一解决方案中创建的类库中的 AdminEmail?
【问题讨论】:
-
Appsettings 只是一个文件,而不是像 app.config 或 web.config 这样的特殊文件。如果有东西想使用 .NET Core 的配置服务,它必须使用
IConfiguration来指定哪些部分应该重新合成到哪些对象中。如果要使用 DI 填充配置设置,则需要将它们包装到 IOption 中。另一方面,如果您只是将设置作为普通的旧对象注入,则只有主项目需要处理 IConfiguration -
@RyanWilson 这实际上是一种滥用。 控制器不应该关心IConfiguration,它应该只关心自己的设置类,例如
EmailSettings。如果您只想传递EmailSettings类,为什么要模拟或启动整个中间件?
标签: c# asp.net-core