我有一堆字符串依赖于静态字典和彼此,但永远不会被用户代码修改。如下所示:
public static RegexDicts
{
public static readonly Dictionary<string, string> dict = new Dictionary<string, string>{
{"One", "1"},
//And so on
}
}
public static class RegexStrings
{
public static readonly string String1 = String.Join("|", RegexDicts.dict.Keys);
public static readonly string String2 = "Hi! (" + String1 + "(";
//...
}
现在,每次程序执行时都必须执行所有这些方法(即使只执行一次)。
将这些方法执行转移到编译器的最佳方法是什么,将实际可执行文件保留为预期的常量?更好的是,是否可以将其扩展到字典本身 - 通过在编译时读取文件来构建字典?
如果我可以生成代码并同时编译它,我很乐意用代码生成来做这件事。
答案 0 :(得分:6)
如果我可以生成代码并同时编译它,我很乐意用代码生成来做这件事。
您可以通过T4模板执行此操作。有关详细信息,请参阅Code Generation and T4 Templates。