AngleSharp by AngleSharp

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

.NET API 1,230,336 bytes

 ConfigurationExtensions

Represents a helper to construct objects with externally defined classes and libraries.
using AngleSharp.Commands; using AngleSharp.Dom; using AngleSharp.Network; using AngleSharp.Services; using AngleSharp.Services.Media; using AngleSharp.Services.Scripting; using AngleSharp.Services.Styling; using System.Collections.Generic; using System.Globalization; using System.Linq; using System.Text; namespace AngleSharp.Extensions { internal static class ConfigurationExtensions { public static Encoding DefaultEncoding(this IConfiguration configuration) { IEncodingProvider provider = configuration.GetProvider<IEncodingProvider>(); string language = configuration.GetLanguage(); return provider?.Suggest(language) ?? Encoding.UTF8; } public static CultureInfo GetCulture(this IConfiguration configuration) { return configuration.GetService<CultureInfo>() ?? CultureInfo.CurrentUICulture; } public static CultureInfo GetCultureFromLanguage(this IConfiguration configuration, string language) { try { return new CultureInfo(language); } catch (CultureNotFoundException) { return configuration.GetCulture(); } } public static string GetLanguage(this IConfiguration configuration) { return configuration.GetCulture().Name; } public static TFactory GetFactory<TFactory>(this IConfiguration configuration) { return configuration.GetServices<TFactory>().Single(); } public static TProvider GetProvider<TProvider>(this IConfiguration configuration) { return configuration.GetServices<TProvider>().SingleOrDefault(); } public static TService GetService<TService>(this IConfiguration configuration) { return configuration.GetServices<TService>().FirstOrDefault(); } public static IEnumerable<TService> GetServices<TService>(this IConfiguration configuration) { return configuration.Services.OfType<TService>(); } public static IResourceService<TResource> GetResourceService<TResource>(this IConfiguration configuration, string type) where TResource : IResourceInfo { foreach (IResourceService<TResource> service in configuration.GetServices<IResourceService<TResource>>()) { if (service.SupportsType(type)) return service; } return null; } public static string GetCookie(this IConfiguration configuration, string origin) { return configuration.GetProvider<ICookieProvider>()?.GetCookie(origin) ?? string.Empty; } public static void SetCookie(this IConfiguration configuration, string origin, string value) { configuration.GetProvider<ICookieProvider>()?.SetCookie(origin, value); } public static ISpellCheckService GetSpellCheck(this IConfiguration configuration, string language) { ISpellCheckService result = null; CultureInfo cultureFromLanguage = configuration.GetCultureFromLanguage(language); foreach (ISpellCheckService service in configuration.GetServices<ISpellCheckService>()) { if (service.Culture.Equals(cultureFromLanguage)) return service; if (service.Culture.TwoLetterISOLanguageName.Is(cultureFromLanguage.TwoLetterISOLanguageName)) result = service; } return result; } public static ICssStyleEngine GetCssStyleEngine(this IConfiguration configuration) { return configuration.GetStyleEngine(MimeTypeNames.Css) as ICssStyleEngine; } public static IStyleEngine GetStyleEngine(this IConfiguration configuration, string type) { return configuration.GetProvider<IStylingProvider>()?.GetEngine(type); } public static bool IsScripting(this IConfiguration configuration) { return configuration?.GetProvider<IScriptingProvider>() != null; } public static IScriptEngine GetScriptEngine(this IConfiguration configuration, string type) { return configuration.GetProvider<IScriptingProvider>()?.GetEngine(type); } public static IBrowsingContext NewContext(this IConfiguration configuration, Sandboxes security = Sandboxes.None) { return configuration.GetFactory<IContextFactory>().Create(configuration, security); } public static IBrowsingContext FindContext(this IConfiguration configuration, string name) { return configuration.GetFactory<IContextFactory>().Find(name); } public static ICommand GetCommand(this IConfiguration configuration, string commandId) { return configuration.GetProvider<ICommandProvider>()?.GetCommand(commandId); } } }