ASP.NET MVC 3 RC и пользовательский ViewEngine, чтобы разрешить внешне загруженные представления

StackOverflow https://stackoverflow.com/questions/4246647

Вопрос

Я немного играю с разделить MVC-сайт на несколько собраний (побежал в некоторых проблемы ранее).

Теперь у меня почти все работает, получил главный проект MVC, который нагружает на любые внешние сборки, он может найти. Внешние сборки в основном внешние область. Отказ Когда у меня было его копировать представления и Web.config до областей основных сайтов-папку, все работало просто хорошо. Теперь, что папка, скорее всего, начнет становиться немного раздутым через некоторое время, поэтому я подумал, что постараюсь добавить в виды как ресурсы в районе-монтаже, см. Как это работает.

Создал свой собственный VirtualPathProvider И мой собственный VirtualFile, зарегистрировал их с HostingEnvironment Мышление все было хорошо. Оказывается, он использует только VirtualPathProvider добавлено в то HostingEnvironment при первой нагрузке, а не по следующим нагрузкам ViewEngine.. хорошо в порядке, нашел несколько примеров того, как вы могли бы обойти это, реализуя свои собственные ViewEngine использовать свою собственную VPP. Но да, это не кажется работоспособным решением для MVC 3 ..

Как оказывается, ни один RazorViewEngine ни WebFormViewEngine Реализуйте два из «Основные функции», похоже, FileExists а также IsValidPath. Отказ Они унаследованы от BuildManagerViewEngine, и знаешь, что? Эти методы отмечены как sealed..

Любой, кто пробовал это с MVC 3, и, возможно, может подтолкнуть меня в правильном направлении? Я уставился на источник MVC 3 на некоторое время, но я просто не вижу никакого способа сделать это ..

Это было полезно?

Решение

Теперь я чувствую себя немного глупо, похоже, я слишком поздно загрузил VPP. Application_Start, но когда я перевел его на мой PreApplicationStartMethod вместо этого он был использован ViewEngine. Отказ (Так что нет реализации ViewEngine кажется, нужен, Ваши!)

Проблема сейчас в том, что когда я пытаюсь добраться до вида, который хранится как ресурс, я готовлю его, вместо того, чтобы он оказал. Но это что-то отличное от этого!

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top