Ich spiele ein wenig mit dem Aufteilen einer MVC-Site in mehrere Baugruppen (lief in einige issues earlier).ASP.NET MVC 3 RC und benutzerdefinierte ViewEngine für extern geladene Ansichten zu ermöglichen
Jetzt habe ich fast alles funktioniert, bekam das MVC Hauptprojekt, das in irgendwelchen externen Versammlungen lädt, die es finden kann. Die externen Baugruppen sind grundsätzlich externe Bereiche. Als ich es hatte, die Views und web.config in den Area-Ordner der Haupt-Sites zu kopieren, hat alles gut geklappt. Jetzt wird dieser Ordner wahrscheinlich nach einiger Zeit etwas aufgebläht sein, also dachte ich, ich würde versuchen, stattdessen die Views als Ressourcen in der Area-Assembly hinzuzufügen, um zu sehen, wie das funktioniert.
Erstellt meine eigene VirtualPathProvider
und meine eigene VirtualFile
, registriert sie mit der HostingEnvironment
denken, alles war gut. Stellt sich heraus, es verwendet nur die VirtualPathProvider
hinzugefügt, um die HostingEnvironment
bei der ersten Belastung, nicht durch die folgenden View-Lasten durch die ViewEngine
.. Ok gut, fand ein paar Beispiele dafür, wie Sie dies umgehen könnten, indem Sie Ihre eigenen ViewEngine
zu verwenden eigenes VPP. Aber ja, das scheint nicht eine praktikable Lösung für MVC 3 ..
zu sein, wie es sich herausstellt, weder RazorViewEngine
noch WebFormViewEngine
implementieren zwei der „Schlüsselfunktionen“ wie es scheint, FileExists
und IsValidPath
. Diese sind von BuildManagerViewEngine
geerbt, und Sie wissen was? Diese Methoden sind als sealed
gekennzeichnet.
Wer hat das mit MVC 3 versucht und könnte mich vielleicht in die richtige Richtung stoßen? Ich habe die MVC 3-Quelle jetzt schon eine ganze Weile angeguckt, aber ich kann einfach keine Möglichkeit sehen.
Und BuildManagerViewEngine ist von VirtualPathProviderViewEngine geerbt, die tatsächlich aussieht, wie es die VPP der HostingEnvirnment verwendet .. Jetzt bin ich verwirrt .. – Robin