【发布时间】:2018-11-06 20:04:38
【问题描述】:
我已经使用 .NET Core Framework 启动了一个新的 RESTful 项目。
我将我的解决方案分为两部分:框架(一组 .NET 标准库)和 Web(RESTful 项目)。
使用 Framework 文件夹,我为进一步的 Web 项目提供了一些库,并且在其中之一中,我想提供一个具有通用方法 T GetAppSetting<T>(string Key) 的配置类。
我的问题是:如何访问 .NET Standard 中的 AppSettings.json 文件?
我找到了很多关于读取此文件的示例,但所有这些示例都将文件读取到 Web 项目中,而没有人将其写入外部库中。我需要它为 Others 项目提供可重用的代码。
【问题讨论】:
-
别再这样了。不要尝试从 库 本身读取配置。配置类是应该注入的依赖项。您的程序集应该定义配置类和包含配置设置代码以将它们与设置相匹配(例如 configurationBuilder.Configure
()` 但您应该将其留给主应用程序以实际从其读取它们来源 -
请注意,您将 .NET Standard 库耦合到 .NET Core Web 项目,因为您想要读取特定于此类项目的 json 文件。通常你会将配置传递给库,而不是相反
-
BTW app.config 从未在程序集上工作过。设置定义了默认值和从应用程序的 app.config 加载它们的架构。您无法通过修改程序集的 app.config 来更改设置,您必须更改默认值
-
@BgrWorker 没有耦合。事实上,耦合已移除。主应用程序可以是任何东西:Microsoft.Extensions.Configuration、DI、Logging 都是可以在任何运行时使用的 .NET Standard 2.0 程序集。我也在我的完整框架应用程序中使用它们
-
@PanagiotisKanavos 我指的是问题,而不是您的评论,这实际上是正确的(我也赞成)
标签: c# .net-core asp.net-core-2.0 asp.net-core-webapi .net-standard-2.0