using Microsoft.Extensions.DependencyInjection; using System; namespace Kean.Infrastructure.SignalR { /// /// ServiceCollection 扩展方法 /// public static class ServiceCollectionExtensions { /// /// 向服务描述中追加 SignalR 配置 /// /// 服务描述符 /// 配置项 /// 服务描述符 public static IServiceCollection AddSignalR(this IServiceCollection services, Action setupAction) { services.AddSignalR(); var options = new SignalROptions { Hubs = new(services) }; setupAction.Invoke(options); return services.AddTransient(_ => options.Hubs); } } }