AspectCore 文档
July 26, 2026 · View on GitHub
AspectCore 是面向 .NET 6+ 的跨平台 AOP(面向切面编程)框架,提供动态代理拦截、依赖注入集成、Web 应用支持、数据校验等能力。
本目录是 AspectCore 的完整文档。中文为主,英文版本见 en/(English documentation lives under en/)。
快速导航
🚀 入门(getting-started)
从零开始使用 AspectCore。
- 安装 — NuGet 包与目标框架
- 快速上手 — 五分钟跑通第一个拦截器
- 核心概念 — 拦截器、代理、切面上下文等术语
- NativeAOT 上手 — 把使用 AspectCore 的应用发布成 NativeAOT 原生二进制
📖 使用指南(guide)
面向日常开发的功能说明。
- 拦截器基础 — 定义拦截器、特性拦截器、全局拦截器
- 拦截器配置 — 三种注册方式与作用范围谓词
- 异步拦截 — Task / ValueTask / IAsyncEnumerable
- 条件拦截 — 按命名空间/服务/方法匹配
- 依赖注入集成 — 内置容器与 Microsoft.Extensions.DependencyInjection
- 第三方容器 — Autofac / Windsor / LightInject
- 配置注入 — 从 IConfiguration 绑定值
- 数据校验 — DataAnnotations 校验拦截
- 反射扩展 — AspectCore.Extensions.Reflection 高性能反射
- 常见场景 — 日志、缓存、重试、性能监控等
- 从 2.x 升级到 3.0 — 升级前提、破坏性变更、升级步骤与常见问题
- Source Generator 诊断目录 — ACSGxxx 诊断的含义、触发条件与修复
🏛 架构设计(architecture)
面向贡献者与深度使用者的设计文档。
- 总体架构 — 分层与运行流程
- 模块与包结构设计 — 15 个包的职责边界与依赖方向
- DynamicProxy 运行时引擎 — 基于 Reflection.Emit 的运行时代理
- Source Generator 编译时引擎 — 基于 Roslyn 的编译时代理
- 两套引擎对比与选型 — DynamicProxy vs SourceGenerator vs Auto
- C# 语言特性适配 — C# 6 ~ C# 13 特性在 AOP Emit 中的适配
- Record 类型支持 — C# 9 record 代理的两引擎差异
🔧 开发指南(development)
面向本仓库贡献者。
- 本地构建 — 还原、编译、目标框架
- 项目结构 — 源码、测试、示例、基准布局
- 贡献指南 — 分支、提交、PR 流程
- 开发规范 — 工程结构识别、命令粒度、测试、性能、设计原则
- Code Review 规范 — Review 维度、BLOCKING 问题、自查清单
- GA 发布流程 — 正式版发布的步骤与门禁
✅ 测试(testing)
📦 发布说明(release-notes)
每个大版本的发布记录。
- v3.0.0 变更日志 — 结构化变更清单(特性 / 性能 / 修复 / 破坏性变更 / 工程)
- v3.0.0 发布叙事 — 发布背景与研发过程的叙事版本
版本说明
本文档基于源码扫描生成,力求与代码一致。文中区分「已实现能力」与「设计/提案」,未实现的内容会显式标注。产品版本见 build/version.props。