using Avalonia_EFCore.Database; using Avalonia_Services.Core; using Avalonia_Services.Endpoints; using Avalonia_Services.Services; using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; namespace Avalonia_API.Configuration { public static class ServicesConfiguration { /// /// 注册统一端点及其依赖的服务(含数据库)。 /// 所有业务端点定义在 Avalonia-Services/Endpoints/AppEndpoints.cs。 /// public static IServiceCollection AddUnifiedApiServices(this IServiceCollection services, IConfiguration configuration) { // ---- 数据库 ---- // 从 appsettings.json 读取 DatabaseConfiguration 节 // 注册默认数据库提供程序(SQLite / MySQL / PostgreSQL / SqlServer) DatabaseProviderRegistry.RegisterDefaults(); var databaseConfig = configuration .GetSection(nameof(DatabaseConfiguration)) .Get() ?? DatabaseConfiguration.ForSQLite("app.db"); // 注册 AppDataContext(共享数据上下文) services.AddAppDatabase(databaseConfig); // ---- 业务服务 ---- services.AddScoped(); // ---- 统一端点 ---- var endpointBuilder = new ServiceEndpointBuilder(); AppEndpoints.Configure(endpointBuilder); var endpoints = endpointBuilder.Build(); services.AddSingleton(endpoints); return services; } } }