<< All versions
Skill v1.0.0
currentLLM-judged scan90/100xihanfun/xihan.framework/xihan-framework
──Details
PublishedOctober 22, 2026 at 04:31 PM
Content Hashsha256:a8faf98a9c6c4b91...
Git SHAc53c93cc226e
──Files
Files (1 file, 3.7 KB)
SKILL.md3.7 KBactive
SKILL.md · 45 lines · 3.7 KB
version: "1.0.0" name: xihan-framework description: 在 .NET 项目里用 XiHan.Framework 写后端:选包、写模块与 [DependsOn]、动态 API 应用服务、配置节、数据访问与缓存等基础设施。凡是代码里出现 XiHan.Framework 命名空间、XiHanModule 或 [DependsOn] 时使用。
在项目里使用 XiHan.Framework
XiHan.Framework 是面向 .NET 的模块化开发框架:能力按职责拆成可独立引用的 NuGet 包,每个包有一个模块类,模块用 [DependsOn] 显式声明依赖,共享统一的生命周期。文档:https://framework.docs.xihanfun.com
先查证,再写代码
包名、模块类名、配置键与 API 以项目引用的版本为准,不要凭记忆写,也不要套用别的框架的写法。
- 配了 MCP 时:
xihan_framework_search找能力在哪个包,xihan_framework_info查安装命令、模块类与依赖,xihan_framework_config查配置节的键与缺省值,xihan_framework_doc读指南全文。 - 没有 MCP 时用命令行(数据随工具离线):
dnx XiHan.Framework.Cli@<版本> --yes -- info Caching、-- config XiHan:Caching:Redis、-- search 分布式锁、-- doc guide/dynamic-api。版本与项目里XiHan.Framework.*的包引用保持一致。 - 也可以读机读文档:https://framework.docs.xihanfun.com/llms.txt(索引)与每页的
.md(如 https://framework.docs.xihanfun.com/guide/caching.md)。
应用骨架
- 按需安装包:
dotnet add package XiHan.Framework.Web.Api(动态 API 与中间件管道,会带上 Core、Web.Core 等基础包)、XiHan.Framework.Web.Docs(Scalar 接口文档);数据访问加XiHan.Framework.Data,缓存加XiHan.Framework.Caching,依此类推。所有XiHan.Framework.*包用同一个版本。 - 启动模块继承
XiHanModule,在[DependsOn(typeof(...))]里列出要用的模块类,如XiHanWebApiModule、XiHanWebDocsModule;模块类名以xihan_framework_info查到的为准。 Program.cs:await builder.AddApplicationAsync<MyAppModule>();→var app = builder.Build();→await app.InitializeApplicationAsync();→await app.RunAsync();。- 服务注册写在模块的
ConfigureServices(ServiceConfigurationContext context)等生命周期钩子里,不堆在Program.cs。
写接口
- 普通业务接口写成应用服务:继承
ApplicationServiceBase、标[DynamicApi],框架按约定生成 REST 路由,不另写 Controller。 - 写操作需要事务时用工作单元(
[UnitOfWork]),读guide/uow了解边界与传播;异步方法接受并传递CancellationToken。 - 统一响应、异常与校验走框架的约定(
guide/response、guide/validation),不自行包一层返回结构。
配置与基础设施
- 选项类带
SectionName常量并绑定XiHan:<模块>:<…>配置节。写 appsettings 前用xihan_framework_config查准键名、类型与缺省值,不要猜。 - 缓存、分布式锁、延迟队列、事件总线等默认实现不依赖外部基础设施;需要 Redis、消息队列时按对应包的配置启用(如
XiHan:Caching:Redis:IsEnabled),不要自己再造一层。 - 多租户、认证授权、审计、本地化等横切能力各有包与指南,先
xihan_framework_search再动手。
常见错误
- 只装了包却没在启动模块的
[DependsOn]里加模块类,或写了不存在的模块类名。 - 为普通业务接口另写 Controller 或 Minimal API,与动态 API 形成两套入口。
- 配置键写错层级或拼写(如漏掉
XiHan:前缀),选项静默保持缺省值。 - 混用不同版本的
XiHan.Framework.*包。 - 在
Program.cs里手动注册本该由模块完成的服务,或绕过模块生命周期。