Healnet.Infrastructure
3.0.0
dotnet add package Healnet.Infrastructure --version 3.0.0
NuGet\Install-Package Healnet.Infrastructure -Version 3.0.0
<PackageReference Include="Healnet.Infrastructure" Version="3.0.0" />
<PackageVersion Include="Healnet.Infrastructure" Version="3.0.0" />
<PackageReference Include="Healnet.Infrastructure" />
paket add Healnet.Infrastructure --version 3.0.0
#r "nuget: Healnet.Infrastructure, 3.0.0"
#:package Healnet.Infrastructure@3.0.0
#addin nuget:?package=Healnet.Infrastructure&version=3.0.0
#tool nuget:?package=Healnet.Infrastructure&version=3.0.0
Healnet.Infrastructure 基础设施模块
版本: v2.0.6 | 模块: Healnet.Infrastructure | 依赖: Healnet.Core → Healnet.Common | TFM: net10.0
概述
Healnet.Infrastructure 是 Healnet 微服务框架的基础设施实现层,对 24 个 中间件/基础设施组件进行了统一封装,提供一致的 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 |
| 数据存储 | Milvus | AddMilvus(...) |
Healnet:Milvus |
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 |
| Milvus | Milvus/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)
├── Milvus.Client (向量数据库)
├── 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
近期变更
v2.0.6
- SqlSugar EntityMapper 可插拔化:引入
IEntityMapper接口,将硬编码的业务实体映射抽离为可插拔扩展点。AiMemoryEntityMapper(框架级,默认注册,映射conversation_session/turn/archive)与BusinessConfigEntityMapper(产品级,不默认注册)两个实现。AddSqlSugar三重载新增includeAiMemoryMappers+params IEntityMapper[] additionalMappers参数,向后兼容。 - 业务代码迁移:BusinessConfig 全套(实体/接口/仓储/ConfigDbLoader/Mapper/DI)迁出至业务项目
Healnet.BusinessConfig;BusinessExample(NL2SQL 案例库)同步迁出。AIServiceExtensions.cs移除BusinessConfigServiceExtensionsDI 注册。AopServiceExtensions 移除冗余using。 - EntityService bug 修复:
EntityService的 SqlSugar 实际签名是Action<PropertyInfo, EntityColumnInfo>(非Action<Type, EntityColumnInfo>),旧代码type == typeof(X)永不为 true,列级 Fluent 映射从未生效。通过property.DeclaringType修复。 - 新增 Milvus 向量数据库封装:新增
Milvus/模块(IMilvusService/MilvusService/MilvusOptions/MilvusField/MilvusExtensions),基于官方Milvus.Client(gRPC SDK)。覆盖集合管理、向量索引、CreateCollection/Load/Release、近似检索(ANNSearchAsync)、标量查询(QueryAsync)、批量/高层写入(InsertEntitiesAsync按行字典自动构建 FieldData)、删除与健康检查(MilvusHealthCheck)。统一通过AddMilvus(...)注册,配置节点Healnet:Milvus。依赖Milvus.Client2.3.0-preview.1(官方 SDK 当前最新版)。
v2.0.5
- 框架三库版本对齐为 2.0.5。
v2.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 (>= 3.0.0)
- Healnet.Core (>= 3.0.0)
- 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.Caching.Memory (>= 10.0.2)
- 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)
- Milvus.Client (>= 2.3.0-preview.1)
- 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.0.0 | 37 | 7/16/2026 |
| 2.0.7 | 57 | 7/10/2026 |
| 2.0.5 | 60 | 7/8/2026 |
| 2.0.3 | 64 | 6/30/2026 |
| 2.0.1 | 64 | 6/30/2026 |
| 2.0.0 | 63 | 6/29/2026 |
| 1.7.3 | 58 | 6/29/2026 |
| 1.7.2 | 62 | 6/25/2026 |
| 1.7.1 | 57 | 6/25/2026 |
| 1.7.0 | 62 | 6/25/2026 |
| 1.6.0 | 74 | 6/24/2026 |
| 1.5.0 | 62 | 6/16/2026 |
| 1.4.0 | 61 | 6/15/2026 |
| 1.3.0 | 75 | 5/29/2026 |
| 1.1.1 | 63 | 5/25/2026 |
| 1.1.0 | 65 | 5/22/2026 |
| 1.0.19 | 68 | 5/20/2026 |
| 1.0.18 | 58 | 5/20/2026 |
| 1.0.17 | 58 | 5/20/2026 |
| 1.0.15 | 63 | 5/20/2026 |
v3.0.0: 随 Healnet 统一升版至 3.0.0(破坏性变更来自 Healnet.Common:AESCrypto 移除无参重载、AESDecrypt 改返回元组)。v2.0.7: SqlSugar EntityMapper 可插拔化(IEntityMapper 接口)/ BusinessConfig + BusinessExample 迁出至业务项目 / ConversationArchive 泛化 / EntityService PropertyInfo 类型比较 bug 修复。v2.0.6: 新增 Milvus 向量数据库封装(IMilvusService / MilvusService / MilvusOptions / MilvusExtensions / MilvusHealthCheck),支持集合管理、向量索引、近似检索(ANN)、标量查询、批量写入与健康检查。v2.0.3: 统一三库版本号;升级目标框架至 net10.0;更新所有依赖包至最新稳定版;移除 Infrastructure 项目中多余的 MSBuild 属性。v2.0.1: 依赖包版本升级,修复若干已知问题。v2.0.0: 重大版本更新,目标框架从 net8.0 升级至 net10.0,全面更新依赖包版本,优化 API 设计。