使用ResourceLoader.GetString方法检索键中带点的资源

Using ResourceLoader.GetString method to retrieve resources with dots in the key

我正在使用 ResourceLoader.GetString 从我的 .resw 文件中获取字符串资源。我能够在键中不带点的情况下检索资源,但带点的资源会作为空字符串返回。例如:

var rl = new Windows.ApplicationModel.Resources.ResourceLoader();
rl.GetString("HelpText"); // gets the string "Help"
rl.GetString("Forget.Text"); // gets "", even though it's defined in resw file as "Forgotten"

我试过用其他各种字符替换点:

rl.GetString("Forget_Text");
rl.GetString("Forget:Text");
rl.GetString("Forget-Text");

运气不好。 MSDN 上的所有示例都巧妙地避免提及这个小问题,所以我有点难过。有人可以帮忙吗?

实际上是通过正斜杠访问的:

rl.GetString("Forget/Text");

你会如何处理最后一个点?例如:

ResourceManager.GetString("My string.")

正斜杠适用于嵌入字符串中的点,但不适用于最后一个点。例如,这会导致编译错误(错误:PRI175:0x80070057 - 处理资源失败,错误:参数不正确。):

ResourceManager.GetString("My string/")

我发现的唯一方法是在将点放入 resw 文件之前替换点。例如,这看起来很奇怪但它有效:

ResourceManager.GetString("My string0x2e")

谢谢。