/// <summary>实例化预编译Mvc引擎</summary> /// <param name="assembly"></param> /// <param name="baseVirtualPath"></param> /// <param name="viewPageActivator"></param> public PrecompiledMvcEngine(Assembly assembly, String baseVirtualPath, IViewPageActivator viewPageActivator) : base(viewPageActivator) { // 为了实现物理文件“重载覆盖”的效果,强制使用物理文件 PreemptPhysicalFiles = false; UsePhysicalViewsIfNewer = false; _assemblyLastWriteTime = new Lazy <DateTime>(() => assembly.GetLastWriteTimeUtc(DateTime.MaxValue)); _baseVirtualPath = NormalizeBaseVirtualPath(baseVirtualPath); AreaViewLocationFormats = new String[] { "~/Areas/{2}/Views/{1}/{0}.cshtml", "~/Areas/{2}/Views/Shared/{0}.cshtml" }; AreaMasterLocationFormats = new String[] { "~/Areas/{2}/Views/{1}/{0}.cshtml", "~/Areas/{2}/Views/Shared/{0}.cshtml" }; AreaPartialViewLocationFormats = new String[] { "~/Areas/{2}/Views/{1}/{0}.cshtml", "~/Areas/{2}/Views/Shared/{0}.cshtml" }; ViewLocationFormats = new String[] { "~/Views/{1}/{0}.cshtml", "~/Views/Shared/{0}.cshtml" }; MasterLocationFormats = new String[] { "~/Views/{1}/{0}.cshtml", "~/Views/Shared/{0}.cshtml" }; PartialViewLocationFormats = new String[] { "~/Views/{1}/{0}.cshtml", "~/Views/Shared/{0}.cshtml" }; FileExtensions = new String[] { "cshtml" }; //_mappings = ( // from type in assembly.GetTypes() // where typeof(WebPageRenderingBase).IsAssignableFrom(type) // let pageVirtualPath = type.GetCustomAttributes(false).OfType<PageVirtualPathAttribute>().FirstOrDefault() // where pageVirtualPath != null // select new KeyValuePair<String, Type>(CombineVirtualPaths(_baseVirtualPath, pageVirtualPath.VirtualPath), type)).ToDictionary(t => t.Key, t => t.Value, StringComparer.OrdinalIgnoreCase); _mappings = GetTypeMappings(assembly, _baseVirtualPath); ViewLocationCache = new PrecompiledViewLocationCache(assembly.FullName, ViewLocationCache); //_viewPageActivator = (viewPageActivator ?? (DependencyResolver.Current.GetService<IViewPageActivator>() ?? DefaultViewPageActivator.Current)); }
/// <summary>实例化预编译Mvc引擎</summary> /// <param name="assembly"></param> /// <param name="baseVirtualPath"></param> /// <param name="viewPageActivator"></param> public PrecompiledMvcEngine(Assembly assembly, String baseVirtualPath, IViewPageActivator viewPageActivator) : base(viewPageActivator) { // 为了实现物理文件“重载覆盖”的效果,强制使用物理文件 PreemptPhysicalFiles = false; UsePhysicalViewsIfNewer = false; _assemblyLastWriteTime = new Lazy <DateTime>(() => assembly.GetLastWriteTimeUtc(DateTime.MaxValue)); _baseVirtualPath = NormalizeBaseVirtualPath(baseVirtualPath); AreaViewLocationFormats = new String[] { "~/Areas/{2}/Views/{1}/{0}.cshtml", "~/Areas/{2}/Views/Shared/{0}.cshtml" }; AreaMasterLocationFormats = new String[] { "~/Areas/{2}/Views/{1}/{0}.cshtml", "~/Areas/{2}/Views/Shared/{0}.cshtml" }; AreaPartialViewLocationFormats = new String[] { "~/Areas/{2}/Views/{1}/{0}.cshtml", "~/Areas/{2}/Views/Shared/{0}.cshtml" }; ViewLocationFormats = new String[] { "~/Views/{1}/{0}.cshtml", "~/Views/Shared/{0}.cshtml" }; MasterLocationFormats = new String[] { "~/Views/{1}/{0}.cshtml", "~/Views/Shared/{0}.cshtml" }; PartialViewLocationFormats = new String[] { "~/Views/{1}/{0}.cshtml", "~/Views/Shared/{0}.cshtml" }; FileExtensions = new String[] { "cshtml" }; _mappings = GetTypeMappings(assembly, _baseVirtualPath); ViewLocationCache = new PrecompiledViewLocationCache(assembly.FullName, ViewLocationCache); //_viewPageActivator = (viewPageActivator ?? (DependencyResolver.Current.GetService<IViewPageActivator>() ?? DefaultViewPageActivator.Current)); }
/// <summary>实例化预编译Mvc引擎</summary> /// <param name="assembly"></param> /// <param name="baseVirtualPath"></param> /// <param name="viewPageActivator"></param> public PrecompiledMvcEngine(Assembly assembly, String baseVirtualPath, IViewPageActivator viewPageActivator) : base(viewPageActivator) { // 为了实现物理文件“重载覆盖”的效果,强制使用物理文件 PreemptPhysicalFiles = false; UsePhysicalViewsIfNewer = false; _assemblyLastWriteTime = new Lazy<DateTime>(() => assembly.GetLastWriteTimeUtc(DateTime.MaxValue)); _baseVirtualPath = NormalizeBaseVirtualPath(baseVirtualPath); AreaViewLocationFormats = new String[] { "~/Areas/{2}/Views/{1}/{0}.cshtml", "~/Areas/{2}/Views/Shared/{0}.cshtml" }; AreaMasterLocationFormats = new String[] { "~/Areas/{2}/Views/{1}/{0}.cshtml", "~/Areas/{2}/Views/Shared/{0}.cshtml" }; AreaPartialViewLocationFormats = new String[] { "~/Areas/{2}/Views/{1}/{0}.cshtml", "~/Areas/{2}/Views/Shared/{0}.cshtml" }; ViewLocationFormats = new String[] { "~/Views/{1}/{0}.cshtml", "~/Views/Shared/{0}.cshtml" }; MasterLocationFormats = new String[] { "~/Views/{1}/{0}.cshtml", "~/Views/Shared/{0}.cshtml" }; PartialViewLocationFormats = new String[] { "~/Views/{1}/{0}.cshtml", "~/Views/Shared/{0}.cshtml" }; FileExtensions = new String[] { "cshtml" }; //_mappings = ( // from type in assembly.GetTypes() // where typeof(WebPageRenderingBase).IsAssignableFrom(type) // let pageVirtualPath = type.GetCustomAttributes(false).OfType<PageVirtualPathAttribute>().FirstOrDefault() // where pageVirtualPath != null // select new KeyValuePair<String, Type>(CombineVirtualPaths(_baseVirtualPath, pageVirtualPath.VirtualPath), type)).ToDictionary(t => t.Key, t => t.Value, StringComparer.OrdinalIgnoreCase); _mappings = GetTypeMappings(assembly, _baseVirtualPath); ViewLocationCache = new PrecompiledViewLocationCache(assembly.FullName, ViewLocationCache); //_viewPageActivator = (viewPageActivator ?? (DependencyResolver.Current.GetService<IViewPageActivator>() ?? DefaultViewPageActivator.Current)); }