Pregunta

Me estoy jugando un poco con dividir un MVC in situ en varias asambleas (encontramos con algunos problemas anteriormente ).

Ahora he casi todo funcionando, consiguió el principal proyecto MVC que se carga en los ensamblados externos que pueden encontrar. Los montajes externos son básicamente externa zonas . Cuando tuve que copiar las vistas y web.config para el todo-sitios principales áreas-carpeta trabajado bien. Ahora, esa carpeta lo más probable es comenzar a conseguir un poco de distensión después de un tiempo, así que pensé que iba a tratar de añadir en el dictamen como recursos en el área de montaje en su lugar, ver cómo eso funcionó.

Creado mi propia VirtualPathProvider y mi propia VirtualFile, que ha registrado en el pensamiento HostingEnvironment todo estaba bien. Resulta que sólo utiliza el VirtualPathProvider añadido a la HostingEnvironment en la primera carga, no por los siguientes Ver cargados por el ViewEngine .. Ok bien, encontró algunos ejemplos de cómo se puede evitar esto mediante la implementación de su propia ViewEngine utilizar su propia de VPP. Pero sí, esto no parece ser una solución viable para MVC 3 ..

Como resultado, ni tampoco RazorViewEngine WebFormViewEngine implementan dos de los "principales funciones" Parece, FileExists y IsValidPath. Estos son heredados de BuildManagerViewEngine, y sabes qué? Estos métodos se marcan como sealed ..

Cualquiera que haya intentado esto con MVC 3 y tal vez me podría empujar en la dirección correcta? He estado mirando en la fuente MVC 3 ahora durante bastante tiempo, pero simplemente no puedo ver ninguna manera de hacer esto ..

¿Fue útil?

Solución

Ahora me siento un poco estúpida, parece que el VPP cargado demasiado tarde .. tenía en Application_Start, pero cuando lo moví a mi PreApplicationStartMethod lugar, fue utilizado por el ViewEngine. (Así que no implementación de ViewEngine parece ser necesario, wey!)

El problema ahora es que cuando trato de llegar a una vista que se almacena como un recurso, llego a descargarlo en vez de tenerlo rindió .. Pero eso es algo diferente de esta manera!

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top