using IP2Region.Net.Abstractions; using IP2Region.Net.XDB; using Microsoft.Extensions.DependencyInjection.Extensions; namespace Microsoft.Extensions.DependencyInjection; /// /// IP2Region 服务扩展类 /// public static class IP2RegionExtensions { /// /// 添加 IP2RegionService 服务。 /// /// 集合 /// IP2Region 数据库文件的路径。 /// 缓存策略,默认为 。 public static IServiceCollection AddIP2RegionService(this IServiceCollection services, string path, CachePolicy cachePolicy = CachePolicy.Content) { services.TryAddSingleton(provider => { return new Searcher(cachePolicy, path); }); #if NET8_0_OR_GREATER services.TryAddKeyedSingleton("IP2Region.Net", (provider, _) => { return provider.GetRequiredService(); }); #endif return services; } }