如何在资源文件中使用字符串插值?

How to use string interpolation in a resource file?

我想使用资源文件来发送电子邮件。在我的资源文件中,我使用了一个值为 "Hello {userName} ... "

的变量 "EmailConfirmation"

在我的 class 中,我使用了:

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

问题是 return 说的是 "Hello {userName}" 而不是 "Hello Toto"。

您不能在资源上下文中使用字符串插值。但是,您可以通过使用 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))