我有一堆依赖于静态字典和彼此的字符串,但从未被用户代码修改。如下所示:
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 + "(";
//...
}
现在,每次程序执行时都必须执行所有这些方法(即使只有一次)。
将这些方法执行转移到编译器的最佳方法是什么,让实际的可执行文件保留预期的常量?更好的是,是否可以将其扩展到该字典本身 - 通过在编译时读取文件来构建字典?
如果我可以生成代码并同时编译它,我很乐意通过代码生成来做到这一点。