. NET Core Dynami c общие файлы между проектами - PullRequest
0 голосов
/ 05 мая 2020

Я использую . NET Core 3.1 . Допустим, у меня есть следующая структура решения:

MySolution
    ClassLibrary
        Files
            a.txt
            b.txt
        GetFile.cs
    Project1
    Project2
    ...

И предположим, что GetFile.cs имеет функцию ReadFile, которая считывает файл из Files и возвращает его содержимое.

public class FileReaderService : IFileReaderService
{
    private readonly IHostEnvironment _env;

    public FileReaderService(IHostEnvironment env)
    {
        _env = env;
    }

    public string ReadFile(string fileName)
    {
        var currentPath = _env.ContentRootPath; // not correct
        return "";
    }
}

Однако, когда я пытаюсь получить текущий каталог в ReadFile с помощью _env.ContentRootPath, он возвращает каталог вызывающего проекта. Я не хочу, чтобы он зависел от вызывающего проекта.

Как я могу добиться, чтобы каждый проект мог вызывать ReadFile и возвращался правильный файл из Files? Мне нужно добавлять, удалять и изменять эти файлы во время работы приложения .

Я нашел несколько вопросов по SO, но все они кажутся устаревшими. Мне нужно решение, которое будет работать на. NET Core.

1 Ответ

0 голосов
/ 05 мая 2020

Вместо использования среды для определения root пути к файлу, установите его на уровне конфигурации (например, appSettings. json) и введите этот путь в саму службу. Любой проект может установить свой собственный путь, использовать тот же самый или оба извлекать из некоторой внешней конфигурации вместо appSettings.

https://docs.microsoft.com/en-us/aspnet/core/fundamentals/dependency-injection?view=aspnetcore-3.1

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...