2

我有一堆依赖于静态字典和彼此的字符串,但从未被用户代码修改。如下所示:

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 + "(";
  //...
}

现在,每次程序执行时都必须执行所有这些方法(即使只有一次)。

将这些方法执行转移到编译器的最佳方法是什么,让实际的可执行文件保留预期的常量?更好的是,是否可以将其扩展到该字典本身 - 通过在编译时读取文件来构建字典?

如果我可以生成代码并同时编译它,我很乐意通过代码生成来做到这一点。

4

1 回答 1

6

如果我可以生成代码并同时编译它,我很乐意通过代码生成来做到这一点。

您可以通过 T4 模板执行此操作。有关详细信息,请参阅代码生成和 T4 模板

于 2012-06-15T22:03:05.070 回答