Я немного поиграю, разделив MVC-сайт на несколько сборок (столкнулся с некоторыми issues earlier).ASP.NET MVC 3 RC и пользовательский ViewEngine, позволяющий загружать извне Просмотров
Теперь у меня почти все работает, есть главный проект MVC, который загружается в любые внешние сборки, которые он может найти. Внешние сборки в основном внешние области. Когда у меня было это, скопируйте Views и web.config в папку «Основные области», все работает отлично. Теперь эта папка, скорее всего, начнет немного раздуваться через некоторое время, поэтому я подумал, что я попытаюсь добавить в качестве ресурсов в области сборки вместо этого, посмотрим, как это работает.
Создал мой собственный VirtualPathProvider
и мой собственный VirtualFile
, зарегистрировал их с HostingEnvironment
, думая, что все было хорошо. Оказывается, он использует только VirtualPathProvider
, добавленный к HostingEnvironment
при первой загрузке, а не по следующим Просмотр-нагрузкам по ViewEngine
.. Хорошо, нашел несколько примеров того, как вы могли обойти это, реализовав свой собственный ViewEngine
, чтобы использовать ваши собственный VPP. Но да, это, кажется, не будет осуществимым решением для MVC 3 ..
Как выясняется, ни RazorViewEngine
, ни WebFormViewEngine
реализовать два из «ключевых функций» это кажется, FileExists
и IsValidPath
. Они унаследованы от BuildManagerViewEngine
, и вы знаете что? Эти методы отмечены как sealed
..
Любой, кто пробовал это с MVC 3 и, возможно, мог подтолкнуть меня в правильном направлении? Я уже давно смотрю на источник MVC 3, но я просто не вижу никакого способа сделать это.
И BuildManagerViewEngine наследуется от VirtualPathProviderViewEngine, который на самом деле выглядит так, как будто он использует VPP HostingEnvirnment. Теперь я запутался .. – Robin 2010-11-22 15:00:42