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

16
我想使用资源文件发送电子邮件。在我的资源文件中,我使用了一个变量"EmailConfirmation",值为"Hello {userName} ..."。
在我的类中,我使用:
public static string message (string userName)
{
   return Resource.WebResource.EmailConfirmation
}

问题是返回的内容是 "Hello {userName}" 而不是 "Hello Toto"。


1
字符串插值仅适用于字符串字面量。 - Mark Benningfield
1个回答

30

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

是的,我有想过这个问题,但实际上这更加复杂,因为在我的变量“EmailConfirmation”中,我使用了以下内容:“你好{userName},请确认你的电子邮件:{HtmlEncoder.Default.Encode(link)}”,并且“HtmlEncoder.Default.Encode”没有得到考虑。 - Jahack

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接