解決策;
次のように、名前付きのプレースホルダーを使用してエラー メッセージを保存します。
- 「これはエラー {name1} です。Andkg kfkjgkf {name2}」
- 「これは {size} の問題です」
次に、コンストラクターで「これは {size} の問題です」などの生のエラー メッセージを受け取るクラスが必要です。
このクラスでは、開発者が各プレースホルダーの値を指定できるようになります。
最後に、開発者は、プレースホルダーを指定された値に置き換えて結果を返すメソッドを呼び出します。
すなわち
var rawMessage = "this is some {size} problem"; // fetch this from a file, db, or build runtime
var errorMessage = new ErrorMessage(rawMessage); // finds all the placeholders, stores them in a Dictionary<string, string>
errorMessage.SetPlaceholderValue("size", "big"); // sets the {size} placeholder value
var message = errorMessage.BuildErrorMessage(); // replaces placeholders with values and checks no values are missing
// message should look like "this is some big problem";
// this will handle any number of placeholders