Отвечая на мой вопрос ради будущих поколений ....
В итоге мы переопределили вызов GetCacheDependency, чтобы гарантировать, что представление никогда не кэшируется. (Мы кешируем представления вручную). Нам пришлось создать FakeCacheDependency, который позволит нам использовать дату последнего изменения из нашего кэша.
В нашем приложении наши виртуальные представления называются CondorVirtualFiles. (При создании движка представлений вам нужно дать ему классное имя.)
public override System.Web.Caching.CacheDependency GetCacheDependency(string virtualPath, System.Collections.IEnumerable virtualPathDependencies, DateTime utcStart)
{
var view = this.GetFile(virtualPath);
if (view is CondorVirtualFile)
{
FakeCacheDependency fcd = new FakeCacheDependency((view as CondorVirtualFile).LastModified);
return fcd;
}
return base.GetCacheDependency(virtualPath, virtualPathDependencies, utcStart);
}
public class FakeCacheDependency : System.Web.Caching.CacheDependency
{
public FakeCacheDependency(DateTime lastModified)
{
base.SetUtcLastModified(lastModified);
}
public FakeCacheDependency()
{
base.SetUtcLastModified(DateTime.UtcNow);
}
}