MVC4 Razor Custom View Locator

Estoy trabajando en una aplicación MVC4 que está diseñada para dar servicio a dos dominios. La mayoría de nuestro contenido se compartirá entre los dominios, pero a veces tendremos que hacer un marcado diferente (usando Razor) dependiendo del sitio del que proviene la solicitud.

Idealmente, quiero un enfoque basado en convenciones que me permita tener una estructura de carpetas como esta:

Views
+ Domain1
    + ControllerName
        View1
        View2
+ Domain2
    + ControllerName
        View1
+ ControllerName
   View1
   View2

Al resolver una vista, me gustaría revisar primero la carpeta específica del dominio, luego la carpeta de vistas generales.

Mis primeros pensamientos fueron implementar un motor de vista personalizado que hereda RazorViewEngine que intercambiaría las cadenas de ViewLocationFormats dependiendo del dominio de solicitud. Desafortunadamente, todo esto está oculto en el VirtualPathProviderEngine y no se puede anular.

Respuestas a la pregunta(1)

Su respuesta a la pregunta