using Volo.Abp.DependencyInjection; namespace BuildFlow.Host.Configuration; /// /// 注册 ABP 与 ASP.NET Core 管线之间的双向访问桥。 /// ABP 模块的 OnApplicationInitialization 通过 context.GetApplicationBuilder() / /// context.GetEndpointRouteBuilder() 取回这些 ObjectAccessor,从而在 ABP 模块里装配中间件、 /// 映射 Hub 等。每个 accessor 同时注册「具体类型」与 IObjectAccessor<T> 接口两份, /// 兼容 ABP 内部按接口解析与宿主按具体类型解析两种获取方式。 /// public static class HostObjectAccessors { public static IServiceCollection AddHostObjectAccessors(this IServiceCollection services) { services.AddAccessor(new ObjectAccessor()); services.AddAccessor(new ObjectAccessor()); services.AddAccessor(new ObjectAccessor()); services.AddAccessor(new ObjectAccessor()); return services; } /// 同时注册 accessor 的具体类型与 接口,单一注册点避免重复。 private static void AddAccessor(this IServiceCollection services, ObjectAccessor accessor) where T : class { services.AddSingleton(accessor); services.AddSingleton>(accessor); } }