AngleSharp by Florian Rappl

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

 ConfigurationExtensions

public static class ConfigurationExtensions
A set of useful extensions for Configuration (or derived) objects.
using AngleSharp.Dom.Css; using AngleSharp.Extensions; using AngleSharp.Network; using AngleSharp.Network.Default; using AngleSharp.Services; using AngleSharp.Services.Default; using System; using System.Collections.Generic; using System.Globalization; using System.Linq; namespace AngleSharp { public static class ConfigurationExtensions { public static Configuration With(this IConfiguration configuration, IService service) { if (configuration == null) throw new ArgumentNullException("configuration"); if (service == null) throw new ArgumentNullException("service"); IEnumerable<IService> services = configuration.Services.Concat(service); return new Configuration(services, configuration.Events, configuration.Culture); } public static Configuration SetCulture(this IConfiguration configuration, string cultureName) { if (cultureName == null) throw new ArgumentNullException("cultureName"); return configuration.SetCulture(new CultureInfo(cultureName)); } public static Configuration SetCulture(this IConfiguration configuration, CultureInfo culture) { if (configuration == null) throw new ArgumentNullException("configuration"); return new Configuration(configuration.Services, configuration.Events, culture); } public static IConfiguration WithCss(this IConfiguration configuration) { if (configuration == null) throw new ArgumentNullException("configuration"); if (!configuration.GetServices<IStylingService>().Any()) { StylingService stylingService = new StylingService(); stylingService.Register(new CssStyleEngine()); return configuration.With(stylingService); } return configuration; } public static IConfiguration WithDefaultLoader(this IConfiguration configuration, Action<LoaderService> setup = null, IEnumerable<IRequester> requesters = null) { if (configuration == null) throw new ArgumentNullException("configuration"); if (!configuration.GetServices<ILoaderService>().Any()) { if (requesters == null) requesters = new HttpRequester[1] { new HttpRequester(null) }; LoaderService loaderService = new LoaderService(requesters); setup?.Invoke(loaderService); return configuration.With(loaderService); } return configuration; } public static IConfiguration WithLocaleBasedEncoding(this IConfiguration configuration) { if (configuration == null) throw new ArgumentException("configuration"); if (!configuration.GetServices<IEncodingService>().Any()) { LocaleEncodingService service = new LocaleEncodingService(); return configuration.With(service); } return configuration; } } }