/// <summary> /// /// </summary> /// <param name="appHost"></param> public void Register(IAppHost appHost) { var inMemoryProvider = new RecursiveInMemoryVirtualPathProvider(appHost); // Create a "Views" directory for dumping all our discovered views in var viewsDir = new InMemoryVirtualDirectory(inMemoryProvider, inMemoryProvider.rootDirectory) { DirName = "Views", files = new List<InMemoryVirtualFile>(), dirs = new List<InMemoryVirtualDirectory>() }; inMemoryProvider.rootDirectory.dirs.Add(viewsDir); foreach (var asm in _assemblies) { foreach (string resource in asm.GetManifestResourceNames()) { // Get just the file name. Internally, ServiceStack dumps all these in a giant "/Views" directory anyway, so let's just do that. string path = string.Join(".", resource.Split('.').Reverse().Take(2).Reverse()); viewsDir.AddFile(path, new StreamReader(asm.GetManifestResourceStream(resource)).ReadToEnd()); } } var razorPlugin = new RazorFormat { VirtualPathProvider = inMemoryProvider, EnableLiveReload = false }; appHost.LoadPlugin(razorPlugin); }
public void SetUp() { RazorFormat.Instance = null; RazorFormat = new RazorFormat { PageBaseType = typeof(CustomRazorBasePage<>), VirtualPathProvider = new InMemoryVirtualPathProvider(new BasicAppHost()), }.Init(); }
public void Simple_static_example() { RazorFormat.Instance = null; var razor = new RazorFormat { VirtualPathProvider = new InMemoryVirtualPathProvider(new BasicAppHost()), EnableLiveReload = false, }.Init(); var page = razor.CreatePage("Hello @Model.Name! Welcome to Razor!"); var html = razor.RenderToHtml(page, new { Name = "World" }); html.Print(); Assert.That(html, Is.EqualTo("Hello World! Welcome to Razor!")); }
public void OnBeforeEachTest() { RazorFormat.Instance = null; var fileSystem = new InMemoryVirtualPathProvider(new BasicAppHost()); fileSystem.AddFile("/views/TheLayout.cshtml", LayoutHtml); InitializeFileSystem(fileSystem); RazorFormat = new RazorFormat { VirtualPathProvider = fileSystem, PageBaseType = typeof (CustomRazorBasePage<>), EnableLiveReload = false, PrecompilePages = PrecompileEnabled, WaitForPrecompilationOnStartup = WaitForPrecompileEnabled, }.Init(); }
/// <summary>Initialises this object.</summary> /// /// <returns>A RazorFormat.</returns> public virtual RazorFormat Init() { if (Instance != null) { Log.Warn("RazorFormat plugin should only be initialized once"); if (ViewManager != null && PageResolver != null) return this; Log.Warn("Incomplete initialization, RazorFormat.Instance set but ViewManager/PageResolver is null"); } Instance = this; this.ViewManager = CreateViewManager(); this.PageResolver = CreatePageResolver(); this.ViewManager.Init(); if (EnableLiveReload.GetValueOrDefault()) { this.LiveReload = LiveReloadFactory(this.ViewManager); this.LiveReload.StartWatching(this.ScanRootPath); } return this; }