Путь к файлу в библиотеке классов - программирование
Подтвердить что ты не робот

Путь к файлу в библиотеке классов

У меня есть проект класса libary (NotificationTemplate), который возвращает содержимое файла:

public static class Template
{
    public static string NotificatioEmail
    {
        get { return File.ReadAllText("Templates\\NotificatioEmail.cshtml"); }
    }
}

В этом проекте находится папка Templates с файлом NotificatioEmail.cshtml.

Кроме того, у меня есть два приложения: консольное приложение и приложение ASP.NET MVC. Файл верен в консольном приложении, но в MVC я получаю ошибку file not found. Как писать повсеместно? Я попробовал это:

Path.Combine(System.AppDomain.CurrentDomain.BaseDirectory, "Templates",
             "NotificatioEmail.cshtml")

но BaseDirectory не включают папку bin.

4b9b3361

Ответ 1

Как вы сказали, BaseDirectory работает в консольных приложениях. Для приложений MVC используйте RelativeSearchPath.

Итак, вы можете использовать этот код для обеих платформ

var appDomain = System.AppDomain.CurrentDomain;
var basePath = appDomain.RelativeSearchPath ?? appDomain.BaseDirectory;
Path.Combine(basePath, "Templates", "NotificatioEmail.cshtml");