これは奇妙な要求のように思えますが、それはありがたいのですが、状況は次のとおりです。
少数のファイルの読み取りに依存するプログラムがあります。これらのファイルの名前は次のようになりますfoo_bar_BAZ.txt
。 BAZ はプロジェクトの名前で、実行時まで不明です。ただし、プログラムの実行全体で変更されることはありません。
すべてのファイル名を格納する文字列の列挙リストが必要です。これまでのところ、次のようなシール クラスを使用してきました。
public sealed class SQLFile
{
private readonly String name;
private readonly String value;
public static readonly SQLFile CrByAuthors = new SQLFile("Changes_CR_By_Authors_%project_name%.txt", "CrByAuthors");
public static readonly SQLFile DocumentCrMetrics = new SQLFile("Changes_Document_CR_Output_%project_name%.txt", "DocumentCrMetrics");
[...]
private SQLFile(String value, String name)
{
this.name = name;
this.value = value;
}
public String ToString(string projectName)
{
return this.value.Replace("%project_name%", projectName);
}
}
ご覧のとおり、これは、ファイル名が実行時の最初から最後まで実際には一定であるにもかかわらず、ファイル名にアクセスするたびにプロジェクト名変数を提供することに依存しています。
この状況を処理するよりエレガントな方法はありますか?