SuperAPI AI 工具集

csharp

写作与研究

查看项目

更新于 10-15 19:54

技能介绍

用途:这是一套 C# 12 / .NET 8+ 的团队编码约定,适用于编写或修改代码时参考,不要求为符合约定而重写未改动的文件。

主要能力与约定:启用 <Nullable>enable</Nullable> 并把警告视为错误;采用文件范围命名空间、主构造函数、集合表达式、required 成员等 C# 12 默认写法;DTO 与值对象使用 records。用模式匹配替代类型判断加强制转换,在封闭层次上用 switch 表达式让编译器提示未处理分支。预期失败用 Result 模式,真正异常才用异常,示例为抽象 record Result<T> 及 Ok/Fail 派生类型。

异步与配置:全程异步,避免 .Result 与 .Wait();每个异步公共方法接受并传递 CancellationToken。配置使用带校验的强类型 IOptions<T> 与 ValidateOnStart,避免直接读 configuration["Some:Key"]。HttpClient 使用 IHttpClientFactory,不要每次调用 new。仅在有性能测量时使用 Span<T>/Memory<T> 与池化。

EF Core 与依赖注入:不要从 API 暴露 EF 实体,用 Select 投影到 DTO;只读查询加 AsNoTracking();Include 多个集合时用 AsSplitQuery();批量修改用 ExecuteUpdateAsync/ExecuteDeleteAsync;软删除用全局 HasQueryFilter。同一接口多实现时用键控服务,注册 AddKeyedScoped<INotifier, EmailNotifier>("email"),解析用 [FromKeyedServices("email")]。

限制:以上为约定性建议,非强制工具或库;具体项目适用性、版本兼容与团队取舍资料未详细说明。