using Microsoft.Extensions.DependencyInjection.Extensions; using System.Application.Services; using System.Application.Services.Implementation; using System.Application.UI; using System.Application.UI.ViewModels; // ReSharper disable once CheckNamespace namespace Microsoft.Extensions.DependencyInjection { public static class ServiceCollectionExtensions { /// /// 添加本地化、多语言服务 /// /// /// public static IServiceCollection AddLocalizationService(this IServiceCollection services) { services.AddSingleton(); return services; } /// /// 添加视图模型组服务 /// /// /// public static IServiceCollection AddViewModelCollectionService(this IServiceCollection services) { services.AddSingleton(new ViewModelCollectionServiceImpl(services)); services.AddSingleton(s => s.GetRequiredService()); return services; } /// /// 添加视图模型 /// /// /// /// public static IServiceCollection AddViewModel(this IServiceCollection services) where TViewModel : ViewModelBase { services.AddSingleton(); return services; } /// /// 添加桌面端日志实现 /// /// /// public static IServiceCollection AddDesktopLogging(this IServiceCollection services) { services.AddLogging(AppHelper.Configure); return services; } /// /// 添加业务用户配置文件服务 /// /// /// public static IServiceCollection AddConfigFileService(this IServiceCollection services) { services.AddSingleton(); return services; } /// /// 添加 hosts 文件助手服务 /// /// /// public static IServiceCollection AddHostsFileService(this IServiceCollection services) { services.AddSingleton(); return services; } /// /// 添加 通用 Http 服务 /// /// /// public static IServiceCollection AddHttpService(this IServiceCollection services) { services.AddHttpClient(); // 添加 System.Net.Http.HttpClient / HttpClientFactory services.AddSingleton(); return services; } /// /// 添加 Steam 相关助手、工具类服务 /// /// /// public static IServiceCollection AddSteamService(this IServiceCollection services) { services.AddSingleton(); return services; } /// /// 尝试添加 Steamworks LocalApi Service /// /// /// public static IServiceCollection TryAddSteamworksLocalApiService(this IServiceCollection services) { services.TryAddSingleton(); return services; } /// /// 添加 SteamDb WebApi Service /// /// /// public static IServiceCollection AddSteamDbWebApiService(this IServiceCollection services) { services.AddSingleton(); return services; } /// /// 添加 Steamworks WebApi Service /// /// /// public static IServiceCollection AddSteamworksWebApiService(this IServiceCollection services) { services.AddSingleton(); return services; } } }