У меня есть составное приложение ASP.NET MVC 3 Razor с использованием MEF. Все идет хорошо, если я хочу развернуть плагины как DLL файлы и представления (CSHTML) в обычной папке Views
из приложения. Но это не очень чисто, и это не будет реальным плагином, если я не буду размещать представления как встроенные ресурсы в DLL файлах (вместе с обоими контроллерами и моделями).
Я следил за многими статьями (большинство из них устарело). На самом деле, здесь есть один довольно хороший способ: Контроллеры и представления внутри библиотеки классов
Я также проверил документы для VirtualPathProvider
, и мне удалось создать пользовательский, который находит файл в сборке и загружает его (или, по крайней мере, получает поток к нему). Для этого я следил за документацией VirtualPathProvider
на MSDN.
Существует также реализация для VirtualFile, но еще не для VirtualDirectory.
Вот проблема. Я работаю с представлениями Razor. Я знаю, что им нужны конфигурации конфигурации из файла web.config
для Razor для их создания. Но если я внедряю их в DLL, эта конфигурация просто теряется.
Интересно, почему я продолжаю получать ошибку:
Вид в ~ ~/Plugins/CRM.Web.Views.CRM.Index.cshtml должен быть получен из WebViewPage или WebViewPage.
Возможно, мне просто нужно добавить код, чтобы он работал? Любые идеи?