#.net #.net-core #webapi
#.net #.net-core #webapi
Вопрос:
Я пытаюсь прочитать содержимое из файла json.Net core API и присваивает список и использует его для выполнения бизнес-логики.
Слои API:
Проект -> Бизнес -> Репозиторий -> БД
Мне нужно прочитать содержимое из файла json на бизнес-уровне. Содержимое файла не будет часто меняться. Я подумываю о чтении файла в конструкторе класса бизнес-уровня.
Вопросы:
- Нужно ли хранить этот файл в папке App_Data?
- Могу ли я использовать HttpContextAccessor в конструкторе бизнес-уровня и читать содержимое?
Может ли кто-нибудь помочь в предоставлении наилучшего способа достижения? Пожалуйста, дайте мне знать, если вопрос неясен, и я перефразирую его.
Комментарии:
1. * 1. Это зависит от вашей цели, если вы хотите выполнять операции CRUD, я предлагаю вам сохранить файл в папке App_Data , иначе это не так важно. * 2. Да, вы можете использовать
HttpContextAccessor
. Вам нужно внедрить его в свой класс (на бизнес-уровне), а затем вы можете использовать его в своих методах2. Привет @EngincanVeske, спасибо за ваш вклад. Я пытаюсь использовать System. Ввод-вывод без HttpContextAccessor.
Ответ №1:
Нужно ли хранить этот файл в папке App_Data?
Это полностью зависит от вашего предполагаемого использования файла. Если это статические данные или конфигурация, которые редко меняются, вы можете сохранить их в своем проекте и настроить свой проект на копирование его в папку сборки. Это можно сделать в Visual Studio 2019, выбрав в качестве опции «Всегда копировать» или «Копировать, если новее» Copy to Output Directory
., или .csproj
непосредственно в файле.
Могу ли я использовать HttpContextAccessor в конструкторе бизнес-уровня и читать содержимое?
Вы можете, зарегистрировав его .Add<Transient|Scoped|Singleton>()
в своем Starup.ConfigureServices
. Обратите внимание, что это затрудняет использование этой службы бизнес-уровня в контексте без запроса (например, с запланированной задачей).
Однако, если файл находится на том же компьютере, что и приложение, я не понимаю, зачем вам нужно HttpContext
его читать. Все, что вам нужно System.IO
, System.Text.Json
это пространства имен и .
Комментарии:
1. Привет @Connor Low, спасибо за ваши предложения. Я понимаю вашу точку зрения на использование System.IO . вы правы, мне не нужен HttpContextAccessor, и это можно сделать с помощью System. Сам ввод-вывод.