Healnet.Infrastructure
2.0.5
See the version list below for details.
dotnet add package Healnet.Infrastructure --version 2.0.5
NuGet\Install-Package Healnet.Infrastructure -Version 2.0.5
<PackageReference Include="Healnet.Infrastructure" Version="2.0.5" />
<PackageVersion Include="Healnet.Infrastructure" Version="2.0.5" />
<PackageReference Include="Healnet.Infrastructure" />
paket add Healnet.Infrastructure --version 2.0.5
#r "nuget: Healnet.Infrastructure, 2.0.5"
#:package Healnet.Infrastructure@2.0.5
#addin nuget:?package=Healnet.Infrastructure&version=2.0.5
#tool nuget:?package=Healnet.Infrastructure&version=2.0.5
Healnet.Infrastructure 基础设施模块
版本: v2.0.4 | 模块: Healnet.Infrastructure | 依赖: Healnet.Core → Healnet.Common | TFM: net10.0
概述
Healnet.Infrastructure 是 Healnet 微服务框架的基础设施实现层,对 23 个 中间件/基础设施组件进行了统一封装,提供一致的 DI 注册方式与配置约定。它实现 Healnet.Core 定义的抽象契约(如 ICacheService、IUnitOfWork、ITokenService、IHttpClientService、IConsulService、IAIService 等),并集成所有第三方技术组件。
⭐ AI 能力彻底 DIP:AI 抽象契约已上移至
Healnet.Core.AI/Healnet.Core.AI.Memory,本层AI/目录仅含实现类(如UnifiedAIService、AgentService、CopilotClient、MicrosoftAIClient、ChatContextManager、AgentContextManager、RAGService,以及 Memory 三实现ConversationRepository/RedisShortTermMemoryStore/MemoryOrchestrator),并引用 Semantic Kernel / Microsoft.Extensions.AI。
快速导航
| 类别 | 模块 | 注册方法 | 配置节点 | 生命周期 |
|---|---|---|---|---|
| 认证安全 | Authentication | AddJwtAuth(...) |
Healnet:Jwt |
Scoped |
| 认证安全 | Security | AddSecurityHeaders(...) / AddCorsPolicy(...) |
Healnet:Security / Healnet:Cors |
Singleton |
| 数据存储 | SqlSugar | AddSqlSugar(...) |
Healnet:SqlSugar |
Singleton/Scope |
| 数据存储 | MongoDB | AddMongoDB(...) |
Healnet:MongoDB |
Singleton/Scoped |
| 数据存储 | ElasticSearch | AddElasticSearch(...) |
Healnet:ElasticSearch |
Singleton |
| 缓存锁 | Redis | AddRedis(...) |
Healnet:Redis |
Singleton |
| 消息队列 | RabbitMQ | 手动注册 IConnection + IRabbitMQService |
自定义 | Singleton |
| 服务发现 | Consul | AddConsul(...) + UseConsul(...) |
Healnet:Consul |
Singleton |
| HTTP 客户端 | Http | AddHttpClientService(...) |
Healnet:HttpClient:{name} |
Scoped |
| API 网关 | YARP | AddYarpConfigBuilder() / AddYarpStaticConfig() / AddYarpConsulDiscovery(...) / AddYarpResilience() |
代码配置 | Transient/Singleton |
| RPC | gRPC | AddGrpcService(...) |
Healnet:gRPC |
Singleton |
| 可观测性 | Logging (Serilog) | UseHealnetSerilog() / AddSerilog(...) |
Healnet:Serilog |
Singleton |
| 可观测性 | OpenTelemetry | AddHealnetOpenTelemetry(...) |
代码配置 | Singleton |
| 可观测性 | HealthChecks | AddHealnetHealthChecks(...) + MapHealnetHealthChecks() |
代码配置 | Transient |
| 中间件 | Middleware | UseExceptionHandling() / UseRequestLogging() / UseCorrelationId() |
代码配置 | Transient |
| 容错 | Resilience | AddResilience(...) |
Healnet:Resilience |
Singleton |
| AOP 拦截器 | AOP | AddAspectCoreWithInterceptors() |
代码配置 | Scoped |
| API 文档 | Swagger | AddSwagger(...) + UseSwaggerWithUI() |
Healnet:Swagger |
Singleton |
| 对象存储 | OSS | AddAliyunOssFileService(...) |
Healnet:FileStorage |
Singleton |
| AI 集成 | AI | AddAIServices(...) / AddMemoryServices(...) |
Healnet:AI |
Scoped/Singleton |
| 工作单元 | UnitOfWork | AddUnitOfWork() |
无 | Scoped |
| 聚合入口 | Extensions | AddHealnetInfrastructure(...) / AddHealnetCommonServices() / AddIdGenerator(...) |
代码配置 | 混合 |
通用入口
对于只需要常用基础服务的场景,提供了快捷注册入口:
// Program.cs
builder.Services.AddHealnetInfrastructure(options =>
{
options.HttpClientName = "default";
options.ConsulAddress = "http://consul.healnet.net:8500";
});
// 或仅基础通用服务(Serilog + 雪花 ID)
builder.Services.AddHealnetCommonServices();
模块详细文档
每个模块均有独立的 README,详见:
| 模块 | 文档路径 |
|---|---|
| AI | AI/README.md |
| AOP | AOP/README.md |
| Authentication | Authentication/README.md |
| Consul | Consul/README.md |
| ElasticSearch | ElasticSearch/README.md |
| Extensions | Extensions/README.md |
| gRPC | gRPC/README.md |
| HealthChecks | HealthChecks/README.md |
| Http | Http/README.md |
| Logging (Serilog) | Logging/README.md |
| Middleware | Middleware/README.md |
| MongoDB | MongoDB/README.md |
| OpenTelemetry | OpenTelemetry/README.md |
| OSS | OSS/README.md |
| RabbitMQ | RabbitMQ/README.md |
| Redis | Redis/README.md |
| Resilience | Resilience/README.md |
| Security | Security/README.md |
| SqlSugar | SqlSugar/README.md |
| Swagger | Swagger/README.md |
| UnitOfWork | UnitOfWork/README.md |
| YARP | YARP/README.md |
架构与 DIP 状态
- 契约在 Core,实现在 Infrastructure:Redis 的
IRedisService : ICacheService(Core)、UnitOfWork 的ISqlSugarUnitOfWork : IUnitOfWork(Core)、认证/Consul/HTTP 的接口均在 Core,实现在本层。 - AI 彻底 DIP:
Core.AI仅含接口 + POCO(无 AI SDK 依赖),Infrastructure.AI提供实现并引用 Semantic Kernel / Microsoft.Extensions.AI。 - OSS 替换 Common 的 IFileService:
AddAliyunOssFileService通过services.Replace将IFileService解析切换为AliyunOssFileService。 - 过时中间件已标记 Obsolete:
ExceptionHandlingMiddleware/HealthCheckMiddleware推荐使用 Core 的ExceptionHandlerMiddleware与 ASP.NET 内置MapHealthChecks。
依赖关系(关键技术包)
Healnet.Infrastructure (net10.0)
├── Healnet.Core
├── Healnet.Common
├── StackExchange.Redis
├── MongoDB.Driver
├── SqlSugarCore (+ ClickHouseCore)
├── NEST (ElasticSearch)
├── RabbitMQ.Client
├── Consul
├── Yarp.ReverseProxy
├── Grpc.AspNetCore
├── Serilog.AspNetCore
├── OpenTelemetry (Tracing + Metrics + Logging)
├── Polly
├── AspectCore
├── Swashbuckle
├── Microsoft.SemanticKernel
├── Microsoft.Extensions.AI (+ OpenAI)
├── Aliyun.OSS.SDK.NetCore
└── Microsoft.AspNetCore.Authentication.JwtBearer
近期变更(2.0.4)
- AI 层彻底 DIP:契约上提 Core.AI,Fluent 映射
ConversationSession/ConversationTurn(去除[SugarTable]特性),ChatContext去 Semantic Kernel 依赖。 - 代码审查清理:修复 12 个编译警告(Consul Timer、gRPC null、字段遮蔽、方法隐藏、AOP 显式接口实现、可空注解);日志规范化(统一 Serilog
Log.ForContext,移除Debug.WriteLine)。 - 版本统一:Common / Core / Infrastructure 均为 2.0.4。
许可证
MIT License
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net10.0
- Aliyun.OSS.SDK.NetCore (>= 2.14.0)
- AspectCore.Core (>= 2.4.0)
- AspectCore.Extensions.DependencyInjection (>= 2.4.0)
- Azure.AI.OpenAI (>= 2.9.0-beta.1)
- Consul (>= 1.7.14.1)
- Grpc.AspNetCore (>= 2.65.0)
- Grpc.Net.Client (>= 2.65.0)
- Healnet.Common (>= 2.0.5)
- Healnet.Core (>= 2.0.5)
- Microsoft.AspNetCore.Authentication.JwtBearer (>= 8.0.0)
- Microsoft.AspNetCore.Grpc.JsonTranscoding (>= 8.0.0)
- Microsoft.Extensions.AI (>= 9.10.0)
- Microsoft.Extensions.AI.OpenAI (>= 10.3.0)
- Microsoft.Extensions.Configuration.Abstractions (>= 10.0.2)
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 10.0.2)
- Microsoft.Extensions.Diagnostics.HealthChecks (>= 10.0.2)
- Microsoft.Extensions.Diagnostics.HealthChecks.Abstractions (>= 10.0.2)
- Microsoft.Extensions.Http.Polly (>= 8.0.0)
- Microsoft.Extensions.Logging (>= 10.0.2)
- Microsoft.SemanticKernel (>= 1.67.0)
- MongoDB.Driver (>= 2.29.0)
- NEST (>= 7.17.0)
- OpenTelemetry.Exporter.Console (>= 1.7.0)
- OpenTelemetry.Exporter.Jaeger (>= 1.6.0-rc.1)
- OpenTelemetry.Exporter.OpenTelemetryProtocol (>= 1.7.0)
- OpenTelemetry.Exporter.Zipkin (>= 1.7.0)
- OpenTelemetry.Extensions.Hosting (>= 1.7.0)
- OpenTelemetry.Instrumentation.AspNetCore (>= 1.7.0)
- OpenTelemetry.Instrumentation.Http (>= 1.7.0)
- OpenTelemetry.Instrumentation.SqlClient (>= 1.15.0)
- Oracle.ManagedDataAccess.Core (>= 23.8.0)
- Polly (>= 8.3.0)
- Polly.RateLimiting (>= 8.0.0)
- RabbitMQ.Client (>= 6.8.0)
- Serilog.AspNetCore (>= 8.0.0)
- Serilog.Extensions.Hosting (>= 8.0.0)
- Serilog.Sinks.Console (>= 6.0.0)
- Serilog.Sinks.Elasticsearch (>= 9.0.0)
- Serilog.Sinks.File (>= 5.0.0)
- SqlSugar.ClickHouseCore (>= 5.1.4.1)
- SqlSugarCore (>= 5.1.4.215)
- StackExchange.Redis (>= 2.9.11)
- Swashbuckle.AspNetCore.SwaggerGen (>= 6.5.0)
- Swashbuckle.AspNetCore.SwaggerUI (>= 6.5.0)
- System.DirectoryServices.Protocols (>= 8.0.0)
- System.Drawing.Common (>= 8.0.0)
- System.IdentityModel.Tokens.Jwt (>= 8.0.0)
- System.Interactive.Async (>= 6.0.1)
- Yarp.ReverseProxy (>= 2.2.0)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 3.1.0 | 48 | 7/24/2026 |
| 3.0.1 | 57 | 7/23/2026 |
| 3.0.0 | 51 | 7/16/2026 |
| 2.0.7 | 60 | 7/10/2026 |
| 2.0.5 | 64 | 7/8/2026 |
| 2.0.3 | 68 | 6/30/2026 |
| 2.0.1 | 68 | 6/30/2026 |
| 2.0.0 | 67 | 6/29/2026 |
| 1.7.3 | 61 | 6/29/2026 |
| 1.7.2 | 65 | 6/25/2026 |
| 1.7.1 | 62 | 6/25/2026 |
| 1.7.0 | 66 | 6/25/2026 |
| 1.6.0 | 77 | 6/24/2026 |
| 1.5.0 | 64 | 6/16/2026 |
| 1.4.0 | 63 | 6/15/2026 |
| 1.3.0 | 78 | 5/29/2026 |
| 1.1.1 | 68 | 5/25/2026 |
| 1.1.0 | 70 | 5/22/2026 |
| 1.0.19 | 70 | 5/20/2026 |
| 1.0.18 | 64 | 5/20/2026 |
v2.0.3: 统一三库版本号;升级目标框架至 net10.0;更新所有依赖包至最新稳定版;移除 Infrastructure 项目中多余的 MSBuild 属性。v2.0.1: 依赖包版本升级,修复若干已知问题。v2.0.0: 重大版本更新,目标框架从 net8.0 升级至 net10.0,全面更新依赖包版本,优化 API 设计。