/// <summary> /// Associates extensions with the view engine instance. /// </summary> /// <param name="engine">The view engine instance</param> public void RegisterEngineForView(IViewEngine engine) { if (ext2ViewEngine.Contains(engine.ViewFileExtension)) { var existing = (IViewEngine)ext2ViewEngine[engine.ViewFileExtension]; throw new MonoRailException( "At least two view engines are handling the same file extension. " + "This isn't going to work. Extension: " + engine.ViewFileExtension + " View Engine 1: " + existing.GetType() + " View Engine 2: " + engine.GetType()); } var extension = engine.ViewFileExtension.StartsWith(".") ? engine.ViewFileExtension : "." + engine.ViewFileExtension; ext2ViewEngine[extension] = engine; if (engine.SupportsJSGeneration && ext2ViewEngine.Contains(engine.JSGeneratorFileExtension)) { var existing = (IViewEngine)ext2ViewEngine[engine.JSGeneratorFileExtension]; throw new MonoRailException( "At least two view engines are handling the same file extension. " + "This isn't going to work. Extension: " + engine.JSGeneratorFileExtension + " View Engine 1: " + existing.GetType() + " View Engine 2: " + engine.GetType()); } if (engine.SupportsJSGeneration) { extension = engine.JSGeneratorFileExtension.StartsWith(".") ? engine.JSGeneratorFileExtension : "." + engine.JSGeneratorFileExtension; ext2ViewEngine[extension] = engine; jsgFastLookup[extension] = engine; } }
/// <summary> /// Enables namespace-aware views location. Always call after you are done adding view engines. /// </summary> /// <param name="engines">The view engine collection.</param> public static void EnableCodeRouting(this ViewEngineCollection engines) { if (engines == null) { throw new ArgumentNullException("engines"); } for (int i = 0; i < engines.Count; i++) { IViewEngine engine = engines[i]; if (engine.GetType() == typeof(Web.Mvc.ViewEngineWrapper)) { continue; } engines[i] = new Web.Mvc.ViewEngineWrapper(engine); } EmbeddedViewsVirtualPathProvider.RegisterIfNecessary(); }
public ProfilingViewEngine(IViewEngine inner) { _inner = inner; _name = inner.GetType().Name; }
/// <summary> /// Creates a new instance of <see cref="ViewEngineDescriptor"/> using the specified type. /// </summary> /// <param name="viewEngine">An instance of <see cref="IViewEngine"/> that the descriptor represents.</param> public ViewEngineDescriptor([NotNull] IViewEngine viewEngine) { ViewEngine = viewEngine; ViewEngineType = viewEngine.GetType(); }
public ProfilingViewEngine(IViewEngine inner, IProfiler profiler) { Inner = inner; _profiler = profiler; _name = inner.GetType().Name; }
/// <summary> /// Associates extensions with the view engine instance. /// </summary> /// <param name="engine">The view engine instance</param> public void RegisterEngineForView(IViewEngine engine) { if (ext2ViewEngine.Contains(engine.ViewFileExtension)) { var existing = (IViewEngine) ext2ViewEngine[engine.ViewFileExtension]; throw new MonoRailException( "At least two view engines are handling the same file extension. " + "This isn't going to work. Extension: " + engine.ViewFileExtension + " View Engine 1: " + existing.GetType() + " View Engine 2: " + engine.GetType()); } var extension = engine.ViewFileExtension.StartsWith(".") ? engine.ViewFileExtension : "." + engine.ViewFileExtension; ext2ViewEngine[extension] = engine; if (engine.SupportsJSGeneration && ext2ViewEngine.Contains(engine.JSGeneratorFileExtension)) { var existing = (IViewEngine) ext2ViewEngine[engine.JSGeneratorFileExtension]; throw new MonoRailException( "At least two view engines are handling the same file extension. " + "This isn't going to work. Extension: " + engine.JSGeneratorFileExtension + " View Engine 1: " + existing.GetType() + " View Engine 2: " + engine.GetType()); } if (engine.SupportsJSGeneration) { extension = engine.JSGeneratorFileExtension.StartsWith(".") ? engine.JSGeneratorFileExtension : "." + engine.JSGeneratorFileExtension; ext2ViewEngine[extension] = engine; jsgFastLookup[extension] = engine; } }