using Flyshot.Core.Config; using Flyshot.Runtime.Common; using Flyshot.Runtime.Fanuc; using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Options; namespace Flyshot.ControllerClientCompat; /// /// 提供 ControllerClient HTTP 兼容层的依赖注入注册入口。 /// public static class ControllerClientCompatServiceCollectionExtensions { /// /// 将 HTTP-only 的 ControllerClient 兼容服务注册到当前宿主。 /// /// 当前宿主服务集合。 /// 宿主配置根。 /// 同一服务集合,便于链式调用。 public static IServiceCollection AddControllerClientCompat(this IServiceCollection services, IConfiguration configuration) { ArgumentNullException.ThrowIfNull(services); ArgumentNullException.ThrowIfNull(configuration); services .AddOptions() .Bind(configuration.GetSection("ControllerClientCompat")); services.AddSingleton(static serviceProvider => serviceProvider.GetRequiredService>().Value); services.AddSingleton(); services.AddSingleton(); services.AddSingleton(); services.AddSingleton(); services.AddSingleton(); services.AddSingleton(); services.AddSingleton(); services.AddSingleton(); return services; } }