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

現在、これらのメソッドはすべて、プログラムを実行するたびに実行する必要があります(1回だけでも)。

これらのメソッドの実行をコンパイラにシフトし、実際の実行可能ファイルに意図した定数を残すための最良の方法は何ですか?さらに良いことに、これをその辞書自体に拡張することは可能ですか?コンパイル時にファイルを読み取ることによって辞書を構築することはできますか?

コードを生成して同時にコンパイルできれば、コード生成でこれを行うのは友好的です。

4

1 に答える 1

6

コードを生成して同時にコンパイルできれば、コード生成でこれを行うのは友好的です。

これは、T4テンプレートを介して行うことができます。詳細については、コード生成とT4テンプレートを参照してください。

于 2012-06-15T22:03:05.070 に答える