2

我正在使用 CMS 工具来生成 .resx 资源文件。

创建带有空格或标点符号的资源名称有什么危险吗?

如果我使用这种语法来获取资源,它工作正常:

GetGlobalResourceObject("myresources", "audio,visual");

但是,这会导致声明性资源语法错误,例如:

<asp:Literal ID="litLastName" runat="server" Text="<%$ Resources: GlobalResources,audio,visual %>"></asp:Literal>

此外,当我在 Visual Studio 中编辑 .resx 文件时,如果我的资源键包含除字母数字和下划线之外的任何字符,它会向我发出警告。它说“资源名称”不是有效的标识符”。

我在这里违反了 .NET 规则吗?

4

1 回答 1

5

资源键的一般准则与您定义的变量的规则相同。

这是 asp.net 论坛中的一条评论,指出不允许使用句点:

http://forums.asp.net/t/967741.aspx

这是关于 SO 的一个关于 resx 文件密钥命名约定的命名约定的问题:

资源 (.resx) 文件密钥命名约定?

此外,如果您考虑如何在应用程序中使用它们,键带有空格或一些奇怪的东西也会真正影响代码。在将资源文件用于诸如 Telerik 控件之类的东西的情况下,这尤其糟糕,如本控件的快速教程中所示:

http://www.telerik.com/help/aspnet-ajax/advancedmultilanguagelocal.html

如果现在您在其中添加一个名称,例如

I like to put spaces in resource keys.ChartTitle.TextBlock.Text

好吧,一切都会到处乱吐,因为空格意味着什么。

(在上面的链接中也很明显为什么句号不再有效)

我想我也可以说,似乎微软的某个人肯定认为这是一个错误,这就是 Visual Studio 给你这个错误的原因。虽然,质疑权威和男人对我们的权力肯定是件好事。

从长远来看,您可能没有理由需要做如此非传统的事情。

于 2009-06-10T21:44:36.303 回答