C# 使用 T4 生成枚举

标签 c# t4

在我的项目中,我想使用 T4 生成我的枚举。为了对此进行测试,我创建了一个具有简单表单的测试项目。在这个项目中,我添加了一个 .tt 文件并将我的代码放入该文件。

一切正常,但我有点失望。我认为当项目被执行时,T4 会生成枚举。所以枚举总是最新的。但事实并非如此,对吧?如果要更新枚举,则必须手动执行此操作并重建解决方案。我的问题是,我在这方面是否正确?或者我错过了什么。

其次,我为什么要使用T4来创建枚举?我的意思是,如果枚举发生变化,我必须重建我的解决方案。

编辑: 我从数据库表中获取枚举值。该表只有2个字段:Id和Description

最佳答案

老实说,我认为这不值得付出努力。您仍然需要返回并更新您的代码以处理任何新值。您能做的最好的事情就是确保您的 switch 语句有一个默认情况。

switch (enumValue)
{
    // ...
    default:
        throw new InvalidOperationException(
            "The enum value " + enumValue + " is unhandled."
        );
}

关于C# 使用 T4 生成枚举,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3915796/

相关文章:

c# - asp.net core登录功能错误 "not all code paths return a value"

c# - LINQ to SQL 其中 ID 不在 some_list 中

c# - T4Toolbox 删除 GeneratedCodeAttribute

c# - 泛型方法可以使用逆变/协变类型吗?

c# - MVC - 有没有办法在模型中声明具有相同属性、不同名称的多个属性

c# - 新手查询正确使用TryParse()

entity-framework - Entity Framework 4.0 自动生成的类未标记为可序列化

c# - 使用 EnvDTE 收集项目中的用户类列表

c# - C# 中泛型 Lazy 类的协变使用

c# - 使用 C# 运行 T4 模板