AngleSharp by Florian Rappl

<PackageReference Include="AngleSharp" Version="0.8.2" />

 ConfigurationExtensions

Represents a helper to construct objects with externally defined classes and libraries.
using AngleSharp.Css; using AngleSharp.Dom; using AngleSharp.Network; using AngleSharp.Scripting; using AngleSharp.Services; using System; using System.Collections.Generic; using System.Diagnostics; using System.Globalization; using System.Text; namespace AngleSharp.Extensions { [DebuggerStepThrough] internal static class ConfigurationExtensions { public static Encoding DefaultEncoding(this IConfiguration configuration) { if (configuration == null) configuration = Configuration.Default; return TextEncoding.Suggest(configuration.GetLanguage()); } public static CultureInfo GetCulture(this IConfiguration options) { return options.Culture ?? CultureInfo.CurrentUICulture; } public static CultureInfo GetCultureFromLanguage(this IConfiguration options, string language) { try { return new CultureInfo(language); } catch (CultureNotFoundException) { return options.GetCulture(); } } public static string GetLanguage(this IConfiguration options) { return options.GetCulture().Name; } public static TService GetService<TService>(this IConfiguration configuration) where TService : IService { foreach (IService service in configuration.Services) { if (service is TService) return (TService)service; } return default(TService); } public static IEnumerable<TService> GetServices<TService>(this IConfiguration configuration) where TService : IService { foreach (IService service in configuration.Services) { if (service is TService) yield return (TService)service; } } public static string GetCookie(this IConfiguration options, string origin) { ICookieService service = options.GetService<ICookieService>(); if (service != null) return service[origin]; return string.Empty; } public static void SetCookie(this IConfiguration options, string origin, string value) { ICookieService service = options.GetService<ICookieService>(); if (service != null) service[origin] = value; } public static ISpellCheckService GetSpellCheck(this IConfiguration options, string language) { ISpellCheckService result = null; CultureInfo cultureFromLanguage = options.GetCultureFromLanguage(language); foreach (ISpellCheckService service in options.GetServices<ISpellCheckService>()) { if (service.Culture.Equals(cultureFromLanguage)) return service; if (service.Culture.TwoLetterISOLanguageName == cultureFromLanguage.TwoLetterISOLanguageName) result = service; } return result; } public static bool IsStyling(this IConfiguration configuration) { return configuration.GetService<IStylingService>() != null; } public static IStyleEngine GetStyleEngine(this IConfiguration configuration, string type) { return configuration.GetService<IStylingService>()?.GetEngine(type); } public static IStyleSheet ParseStyling(this IConfiguration configuration, string source, StyleOptions options, string type = null) { return configuration.GetStyleEngine(type ?? MimeTypes.Css)?.Parse(source, options); } public static IStyleSheet ParseStyling(this IConfiguration configuration, IResponse response, StyleOptions options, string type = null) { return configuration.GetStyleEngine(type ?? MimeTypes.Css)?.Parse(response, options); } public static bool IsScripting(this IConfiguration configuration) { return configuration.GetService<IScriptingService>() != null; } public static IScriptEngine GetScriptEngine(this IConfiguration configuration, string type) { return configuration.GetService<IScriptingService>()?.GetEngine(type); } public static void RunScript(this IConfiguration configuration, string source, ScriptOptions options, string type = null) { configuration.GetScriptEngine(type ?? MimeTypes.DefaultJavaScript)?.Evaluate(source, options); } public static void RunScript(this IConfiguration configuration, IResponse response, ScriptOptions options, string type = null) { configuration.GetScriptEngine(type ?? MimeTypes.DefaultJavaScript)?.Evaluate(response, options); } public static IBrowsingContext NewContext(this IConfiguration options, Sandboxes security = Sandboxes.None) { IContextService service = options.GetService<IContextService>(); if (service == null) return new BrowsingContext(options, security); return service.Create(options, security); } public static IBrowsingContext FindContext(this IConfiguration options, string name) { return options.GetService<IContextService>()?.Find(name); } public static ICommandService GetCommand(this IConfiguration options, string commandId) { foreach (ICommandService service in options.GetServices<ICommandService>()) { if (service.CommandId.Equals(commandId, StringComparison.OrdinalIgnoreCase)) return service; } return null; } } }