/// <summary> /// Creates an instance of a <see cref="TemplateService"/>. /// </summary> /// <param name="configuration">The named configuration.</param> /// <returns>A new instance of <see cref="TemplateService"/>.</returns> public static TemplateService CreateTemplateService(string configuration) { if (string.IsNullOrEmpty(configuration)) { throw new ArgumentException("The argument 'configuration' cannot be null or empty."); } var config = RazorEngineConfigurationSection.GetConfiguration(); if (config == null) { throw new ConfigurationErrorsException("The configuration section <razorEngine /> is not defined."); } var templateServiceConfig = config.TemplateServices .Cast <TemplateServiceConfigurationElement>() .Where(t => t.Name.Equals(configuration, StringComparison.InvariantCultureIgnoreCase)) .SingleOrDefault(); if (templateServiceConfig == null) { throw new ConfigurationErrorsException(string.Format("No configuration for template service '{0}' is defined", configuration)); } return(CreateTemplateService(templateServiceConfig, config.Namespaces.Cast <NamespaceConfigurationElement>().Select(n => n.Namespace))); }
/// <summary> /// Configures the engine. /// </summary> private static void Configure() { var config = RazorEngineConfigurationSection.GetConfiguration(); if (config == null) { return; } defaultNamespaces = config.Namespaces .Cast <NamespaceConfigurationElement>() .Select(n => n.Namespace); config.TemplateServices .Cast <TemplateServiceConfigurationElement>() .ToList() .ForEach(t => Services.Add(t.Name, TemplateServiceFactory.CreateTemplateService(t, defaultNamespaces))); if (!string.IsNullOrEmpty(config.TemplateServices.Default)) { TemplateService templateService = null; if (!Services.TryGetValue(config.TemplateServices.Default, out templateService)) { throw new ConfigurationErrorsException( string.Format( "No template service is configured with name '{0}' and could not be set as default.", config.TemplateServices.Default)); } service = templateService; createdService = true; } }
public static ICompilerService GetDefaultCompilerService() { var config = RazorEngineConfigurationSection.GetConfiguration(); if (config == null) { return(GetCompilerService(Language.CSharp)); } return(GetCompilerService(config.DefaultLanguage)); }
/// <summary> /// Configures the templating engine. /// </summary> private static void Configure() { var config = RazorEngineConfigurationSection.GetConfiguration(); if (config != null) { if (!string.IsNullOrWhiteSpace(config.Factory)) { SetCompilerServiceFactory(config.Factory); } else { CompilerServiceFactory = new DefaultCompilerServiceFactory(); } if (config.TemplateServices.Count > 0) { string @default = string.IsNullOrWhiteSpace(config.TemplateServices.Default) ? null : config.TemplateServices.Default; foreach (TemplateServiceConfigurationElement serviceConfig in config.TemplateServices) { string name = serviceConfig.Name; var service = ConfigurationServices.CreateTemplateService(serviceConfig);; ConfigurationServices.AddNamespaces(service, config.Namespaces); if (name == @default) { DefaultTemplateService = service; } Services.Add(name, service); } } if (DefaultTemplateService == null) { DefaultTemplateService = new TemplateService(CompilerServiceFactory.CreateCompilerService()); ConfigurationServices.AddNamespaces(DefaultTemplateService, config.Namespaces); } if (!string.IsNullOrWhiteSpace(config.Activator)) { DefaultTemplateService.SetActivator(ConfigurationServices.CreateInstance <IActivator>(config.Activator)); } } else { ConfigureDefault(); } }
public static ICompilerService GetDefaultCompilerService() { #if NO_CONFIGURATION return(GetCompilerService(Language.CSharp)); #else var config = RazorEngineConfigurationSection.GetConfiguration(); if (config == null) { return(GetCompilerService(Language.CSharp)); } return(GetCompilerService(config.DefaultLanguage)); #endif }
/// <summary> /// Initialises the configuration. /// </summary> /// <param name="name">The name of the template service configuration.</param> private void InitialiseConfiguration(string name) { var config = RazorEngineConfigurationSection.GetConfiguration(); if (config == null) { return; } var serviceConfig = (name == null) ? null : config.TemplateServices .OfType <TemplateServiceConfigurationElement>() .Where(t => t.Name.Equals(name, StringComparison.OrdinalIgnoreCase)) .SingleOrDefault(); InitialiseConfiguration(config, serviceConfig); }
/// <summary> /// Initialises the configuration. /// </summary> /// <param name="name">The name of the template service configuration.</param> private void InitialiseConfiguration(string name) { var config = RazorEngineConfigurationSection.GetConfiguration(); if (config == null) { throw new ConfigurationErrorsException("No <razorEngine> configuration section has been defined."); } var serviceConfig = config.TemplateServices .OfType <TemplateServiceConfigurationElement>() .Where(t => t.Name.Equals(name, StringComparison.OrdinalIgnoreCase)) .SingleOrDefault(); if (serviceConfig == null) { throw new ConfigurationErrorsException("No <templateService> configuration element defined with name = '" + name + "'"); } InitialiseConfiguration(config, serviceConfig); }
public RazorViewServiceConfiguration(Registration <IRazorViewLoader> razorViewLoaderRegistration) { if (razorViewLoaderRegistration == null) { throw new ArgumentNullException(nameof(razorViewLoaderRegistration)); } RazorViewLoader = razorViewLoaderRegistration; CompilerServiceFactory = new DefaultCompilerServiceFactory(); EncodedStringFactory = new HtmlEncodedStringFactory(); CachingProvider = new DefaultCachingProvider(); Namespaces = new HashSet <string>() { "System", "System.Collections.Generic", "System.Linq" }; RazorEngineConfigurationSection configuration = RazorEngineConfigurationSection.GetConfiguration(); Language = configuration?.DefaultLanguage ?? Language.CSharp; }
/// <summary> /// Initialises the <see cref="TemplateServiceFactory"/> type. /// </summary> static TemplateServiceFactory() { Configuration = RazorEngineConfigurationSection.GetConfiguration(); }