Получить все скомпилированные виды Razor в приложении - PullRequest
1 голос
/ 20 сентября 2019

Я разрабатываю библиотеку для использования в ASP.NET Core MVC.Для этой библиотеки мне нужно получить список всех (скомпилированных) представлений Razor (путь и содержимое), которые существуют в приложении.

Есть ли способ поиска всех скомпилированных представлений Razor в приложении во время выполнения?До сих пор мне не повезло, когда я пытался это выяснить.

Итерация по файлам .cshtml невозможна, поскольку они не будут опубликованы при использовании скомпилированных представлений.

1 Ответ

1 голос
/ 23 сентября 2019

Для получения пути к просмотру, вы можете попробовать ViewsFeature как

public class HomeController : Controller
{
    private readonly IViewCompilerProvider _viewCompilerProvider;
    private readonly ApplicationPartManager _applicationPartManager;

    public HomeController(IViewCompilerProvider viewCompilerProvider
        , ApplicationPartManager applicationPartManager)
    {
        _viewCompilerProvider = viewCompilerProvider;
        _applicationPartManager = applicationPartManager;
    }
    public IActionResult Index()
    {
        var feature = new ViewsFeature();
        _applicationPartManager.PopulateFeature(feature);
        var views = feature.ViewDescriptors;          
        return View();
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...