.Net Core API 从 Json 文件中读取内容

.Net Core API read content from Json File

我正在尝试从 .Net 核心 API 中的 json 文件中读取内容并分配给列表并将其用于执行业务逻辑。

API层数:

项目 -> 业务 -> 存储库 -> 数据库

我需要从业务层的 json 文件中读取内容。文件内容不会经常变化。我正在考虑在业务层 class 构造函数中读取文件。

问题:

  1. 我需要将此文件保存在 App_Data 文件夹中吗?
  2. 能否在业务层构造函数中使用HttpContextAccessor读取内容?

有人可以帮助提供最佳实现方式吗?如果问题不清楚,请告诉我,我会重新措辞。

Do I need to keep this file in App_Data folder?

这完全取决于您对该文件的预期用途。如果它是静态数据或很少更改的配置,您可以将其与您的项目一起存储并设置您的项目 to copy it to the build folder。这可以在 Visual Studio 2019 中通过选择“始终复制”或“如果较新则复制”作为 Copy to Output Directory 选项来完成,或者直接在 .csproj 文件中完成。

Can I use the HttpContextAccessor in the business layer constructor and read the content?

您可以在 Starup.ConfigureServices 中使用 .Add<Transient|Scoped|Singleton>() 注册它。请注意,这使得在非请求上下文中使用此业务层服务变得困难(例如,使用计划任务)。

但是,如果文件与应用程序位于同一台计算机上,我不明白为什么您需要 HttpContext 才能读取它。您只需要 System.IOSystem.Text.Json 命名空间。