web-dev-qa-db-ja.com

リソースファイルで文字列補間を使用するにはどうすればよいですか?

リソースファイルを使用してメールを送信したいと思います。リソースファイルで、値が「Hello {userName} ...」の変数「EmailConfirmation」を使用しました。

私のクラスで使用したもの:

public static string message (string userName)
{
   return Resource.WebResource.EmailConfirmation
}

問題は、戻り値が「HelloToto」ではなく「Hello {userName}」と表示されることです。

10
Jahack

リソースのコンテキストで文字列補間を利用することはできません。ただし、string.Formatを使用することで、必要なことを実現できます。次のようなものをリソースファイルに書き込みます。

Hello {0}

次に、以下のように使用します。

public static string message (string userName)
{
   return string.Format(Resource.WebResource.EmailConfirmation, userName);
}

更新

必要な数のパラメーターを追加できます。例えば:

Hello {0}, Confirm your email: {1}

そして、それを次のように使用できます。

string.Format(Resource.WebResource.EmailConfirmation
    , userName
    , HtmlEncoder.Default.Encode(link))
15
Christos