You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何基于ASP.NET Core模型自动生成通用API控制器?

ASP.NET Core 批量生成通用控制器的方案

1. 手动复用模板片段

把你给出的控制器模板存成可快速替换的代码片段,每次新建控制器时只需要替换[ModelName]为目标模型名即可。比如在Visual Studio中可以添加自定义代码片段:

  • 打开「工具」→「代码片段管理器」,选择「Visual C#」分类,点击「添加」按钮,将包含模板的文件导入,模板里把[ModelName]改成$ModelName$这样的可替换变量,方便快速填充。

2. 用T4模板批量生成

T4是Visual Studio自带的代码生成工具,能一次性生成所有需要的控制器:

  1. 在项目中新建一个T4模板文件(后缀为.tt)
  2. 写入以下代码:
<#@ template language="C#" #>
<#@ output extension=".cs" #>
<#
// 在这里填写需要生成控制器的模型名称数组
string[] targetModels = { "Student", "Course", "Teacher", "Department" };
foreach (var model in targetModels)
{
#>
using YourProjectName.Models; // 替换成你的模型所在命名空间
using YourProjectName.Repositories; // 替换成IRepository所在命名空间

namespace YourProjectName.Controllers
{
    public class <#= model #>Controller : GenericController<<#= model #>>
    {
        public <#= model #>Controller(IRepository<<#= model #>> repository) : base(repository) { }
    }
}
<#
}
#>
  1. 右键点击T4文件,选择「运行自定义工具」,就能自动生成所有模型对应的控制器文件。

3. 自定义dotnet CLI脚手架模板

如果习惯用命令行开发,可以自定义脚手架模板来快速生成控制器:

  1. 创建一个模板项目,在其中定义控制器的模板文件(把[ModelName]替换为模板变量__ModelName__)
  2. 按照dotnet模板规范配置template.json,指定变量替换规则
  3. 通过dotnet new install安装自定义模板,之后就能用类似dotnet new genericcontroller -n Student的命令生成对应控制器。

4. Roslyn源码生成器(编译时自动生成)

如果希望项目中新增模型时自动生成控制器,可以用Roslyn源码生成器:

  1. 创建一个独立的源码生成器类库项目
  2. 编写生成逻辑:扫描项目中所有符合条件的模型类(比如特定命名空间下的类)
  3. 为每个模型动态生成对应的控制器代码,编译时自动将生成的代码纳入项目编译。

内容的提问来源于stack exchange,提问作者amir

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.13 05:18:11