AngleSharp by AngleSharp

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

 ConfigurationExtensions

public static class ConfigurationExtensions
A set of useful extensions for Configuration (or derived) objects.
using AngleSharp.Browser; using AngleSharp.Common; using AngleSharp.Dom; using AngleSharp.Io; using System; using System.Collections.Generic; using System.Globalization; using System.Linq; using System.Runtime.CompilerServices; namespace AngleSharp { [System.Runtime.CompilerServices.NullableContext(1)] [System.Runtime.CompilerServices.Nullable(0)] public static class ConfigurationExtensions { public static IConfiguration With(this IConfiguration configuration, object service) { IConfiguration configuration2 = configuration; if (configuration2 == null) throw new ArgumentNullException("configuration"); configuration = configuration2; object obj = service; if (obj == null) throw new ArgumentNullException("service"); service = obj; return new Configuration(configuration.Services.Concat(service)); } public static IConfiguration WithOnly<[System.Runtime.CompilerServices.Nullable(2)] TService>(this IConfiguration configuration, TService service) { if (service == null) throw new ArgumentNullException("service"); return configuration.Without<TService>().With(service); } public static IConfiguration WithOnly<[System.Runtime.CompilerServices.Nullable(2)] TService>(this IConfiguration configuration, Func<IBrowsingContext, TService> creator) { Func<IBrowsingContext, TService> func = creator; if (func == null) throw new ArgumentNullException("creator"); creator = func; return configuration.Without<TService>().With(creator); } public static IConfiguration Without(this IConfiguration configuration, object service) { IConfiguration configuration2 = configuration; if (configuration2 == null) throw new ArgumentNullException("configuration"); configuration = configuration2; object obj = service; if (obj == null) throw new ArgumentNullException("service"); service = obj; return new Configuration(configuration.Services.Except(service)); } public static IConfiguration With(this IConfiguration configuration, IEnumerable<object> services) { IConfiguration configuration2 = configuration; if (configuration2 == null) throw new ArgumentNullException("configuration"); configuration = configuration2; IEnumerable<object> enumerable = services; if (enumerable == null) throw new ArgumentNullException("services"); services = enumerable; return new Configuration(services.Concat(configuration.Services)); } public static IConfiguration Without(this IConfiguration configuration, IEnumerable<object> services) { IConfiguration configuration2 = configuration; if (configuration2 == null) throw new ArgumentNullException("configuration"); configuration = configuration2; IEnumerable<object> enumerable = services; if (enumerable == null) throw new ArgumentNullException("services"); services = enumerable; return new Configuration(configuration.Services.Except(services)); } public static IConfiguration With<[System.Runtime.CompilerServices.Nullable(2)] TService>(this IConfiguration configuration, Func<IBrowsingContext, TService> creator) { Func<IBrowsingContext, TService> func = creator; if (func == null) throw new ArgumentNullException("creator"); creator = func; return configuration.With((object)creator); } public static IConfiguration Without<[System.Runtime.CompilerServices.Nullable(2)] TService>(this IConfiguration configuration) { IConfiguration configuration2 = configuration; if (configuration2 == null) throw new ArgumentNullException("configuration"); configuration = configuration2; IEnumerable<object> services = configuration.Services.OfType<TService>().Cast<object>(); IEnumerable<Func<IBrowsingContext, TService>> services2 = configuration.Services.OfType<Func<IBrowsingContext, TService>>(); return configuration.Without(services).Without(services2); } public static bool Has<[System.Runtime.CompilerServices.Nullable(2)] TService>(this IConfiguration configuration) { IConfiguration configuration2 = configuration; if (configuration2 == null) throw new ArgumentNullException("configuration"); configuration = configuration2; if (!configuration.Services.OfType<TService>().Any()) return configuration.Services.OfType<Func<IBrowsingContext, TService>>().Any(); return true; } public static IConfiguration WithDefaultLoader(this IConfiguration configuration, [System.Runtime.CompilerServices.Nullable(2)] LoaderOptions setup = null) { LoaderOptions config = setup ?? new LoaderOptions(); if (!configuration.Has<IRequester>()) configuration = configuration.With(new DefaultHttpRequester(null, null)); if (!config.IsNavigationDisabled) configuration = configuration.With((Func<IBrowsingContext, IDocumentLoader>)((IBrowsingContext ctx) => new DefaultDocumentLoader(ctx, config.Filter))); if (config.IsResourceLoadingEnabled) configuration = configuration.With((Func<IBrowsingContext, IResourceLoader>)((IBrowsingContext ctx) => new DefaultResourceLoader(ctx, config.Filter))); return configuration; } public static IConfiguration WithCulture(this IConfiguration configuration, string name) { CultureInfo culture = new CultureInfo(name); return configuration.WithCulture(culture); } public static IConfiguration WithCulture(this IConfiguration configuration, CultureInfo culture) { return configuration.With(culture); } public static IConfiguration WithMetaRefresh(this IConfiguration configuration, [System.Runtime.CompilerServices.Nullable(new byte[] { 2, 1 })] Predicate<Url> shouldRefresh = null) { RefreshMetaHandler service = new RefreshMetaHandler(shouldRefresh); return configuration.With(service); } public static IConfiguration WithLocaleBasedEncoding(this IConfiguration configuration) { LocaleEncodingProvider service = new LocaleEncodingProvider(); return configuration.With(service); } public static IConfiguration WithDefaultCookies(this IConfiguration configuration) { MemoryCookieProvider service = new MemoryCookieProvider(); return configuration.With(service); } } }