public static void AddEasyComic(this IServiceCollection services, NetworkAdapterTypes networkAdapterType = NetworkAdapterTypes.HttpClient) { if (services is null) { throw new ArgumentNullException(nameof(services)); } services.AddSingleton <ComicEngine>(); services.AddSingleton(x => { var factory = x.GetRequiredService <IServiceScopeFactory>(); var eng = new SearchEngine(factory); return(eng); }); services.AddSingleton <IComicDownloader, ComicDownloader>(); services.AddSingleton <RecyclableMemoryStreamManager>(); #if NET452 || NETSTANDARD1_4 services.AddSingleton <HttpClient>(); services.AddScoped <INetworkAdapter, HttpClientAdapter>(); #else services.AddHttpClient(); services.AddScoped(x => x.GetRequiredService <IHttpClientFactory>().CreateClient()); if (networkAdapterType == NetworkAdapterTypes.HttpClient) { services.AddScoped <INetworkAdapter, HttpClientAdapter>(); } else { services.AddScoped <INetworkAdapter, WebRequestAdapter>(); } #endif }
public static void AddDefaultEasyComic(this IServiceCollection services, NetworkAdapterTypes networkAdapterType = NetworkAdapterTypes.HttpClient) { if (services is null) { throw new ArgumentNullException(nameof(services)); } services.AddEasyComic(networkAdapterType); services.AddStreamVisitor(); }
public void CallAddDefaultEasyComic(NetworkAdapterTypes type) { var services = new ServiceCollection(); EasyComicBuilderExtensions.AddDefaultEasyComic(services, type); var se = services.BuildServiceProvider() .GetRequiredService <SearchEngine>(); Assert.IsNotNull(se); }
public void CallAddEasyComic_ServiceCollectionMustContainesServices(NetworkAdapterTypes type) { var services = new ServiceCollection(); EasyComicBuilderExtensions.AddEasyComic(services, type); Assert.IsTrue(services.Any(x => x.ServiceType == typeof(ComicEngine))); Assert.IsTrue(services.Any(x => x.ServiceType == typeof(SearchEngine))); Assert.IsTrue(services.Any(x => x.ServiceType == typeof(RecyclableMemoryStreamManager))); Assert.IsTrue(services.Any(x => x.ServiceType == typeof(INetworkAdapter))); Assert.IsTrue(services.Any(x => x.ServiceType == typeof(IComicDownloader))); }
public static void AddServices(NetworkAdapterTypes type = NetworkAdapterTypes.HttpClient) { Services.AddEasyComic(type); Services.AddKnowEngines(); Services.AddScoped <IJsEngine, JintJsEngine>(); }