文章整理面向 C#/.NET 的 Cursor 规则,包括传递 CancellationToken、通过工厂创建 HttpClient,以及注入 TimeProvider。还建议拆分端点组织方式,减少上下文负担并提高生成代码的可测试性。
每个工作日,为使用 Cursor 的资深 C#/.NET 工程师分享一条立场鲜明的规则。这里汇总了本周的全部内容,方便你一次读完;各篇文章的正式版本发布在 Agentic Architect 博客上。
代码库中的每个 async 方法都应该接收并向下传递 CancellationToken。把它定为规则:任何新增的 async 方法签名,只要没有 CancellationToken,就必须标记出来。这样可以防止 AI 在调用链执行到一半时,悄悄丢掉取消能力。
→ 博客上的文章固定链接
拒绝在任何生成的代码中使用 new HttpClient()。强制 Cursor 注入 IHttpClientFactory 或类型化客户端。经典的 socket 耗尽问题,恰恰就是 AI 会在毫无察觉的情况下给你埋下的那类坑。
→ 博客上的文章固定链接
绝不要让 Cursor 在业务逻辑中硬编码 DateTime.Now 或 DateTime.UtcNow。应该注入 TimeProvider,或者你自己的 IClock。这样既能让测试中的时间确定可控,也能防止 AI 一生成涉及时间的代码,就习惯性地使用静态 API。
→ 博客上的文章固定链接
在 .NET 9 服务中使用 MapGroup 和 EndPoints。这样可以让上下文窗口保持精简、聚焦,相比面对庞大臃肿的 Controller,AI 能给出更准确的代码建议。
→ 博客上的文章固定链接
每个 MediatR Request 都必须有对应的 FluentValidation 规则。强制 AI 在编写 handler 逻辑之前,先检查 validator。这样可以防止“上下文腐化”:AI 随着上下文的演变,忘记了你的业务约束。
→ 博客上的文章固定链接
强制使用 ILogger 和结构化模板。日志中绝不要使用字符串插值。这样,当你把日志反馈给 Cursor 来调试问题时,AI 就能立即识别其中的模式。
→ 博客上的文章固定链接
绝不要让 AI 在 Controller 中编写数据库逻辑。强制划清边界:所有 IQueryable 访问都必须留在 Infrastructure 层。这样可以让业务逻辑保持“纯粹”,也更便于 LLM 阅读理解。
→ 博客上的文章固定链接
免费的 arch-core-lite.mdc 是一条放进去就能用的 Cursor 规则,让你不必每天早上都重新解释一遍项目约定。花 60 秒安装,看看 Cursor 是否真的能记住你的 DI 生命周期,再自行判断完整套件是否值得花 £9.00。
免费示例:GitHub 上的 arch-core-lite.mdc
完整套件(£9.00,一次性付费):Agentic Architect Kit
每日规则订阅源:https://agentic-architect.dev/blog/
本期汇总中所有内容的正式发布地址:https://agentic-architect.dev/blog/。
如需采取进一步措施,你可以考虑屏蔽此人和/或举报滥用行为。