ASP.NET .resx资源文件中的有效资源键

时间:2009-06-10 21:41:02

标签: asp.net resources internationalization resx

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

创建带有空格或标点字符的资源名称是否有任何危险?

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

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

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

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

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

我在这里打破了.NET规则吗?

1 个答案:

答案 0 :(得分:5)

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

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

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

以下是关于resx文件密钥命名约定的命名约定的问题:

Resource (.resx) file Key naming conventions?

另外,如果你考虑如何在具有空格键的应用程序中使用它们,或者奇怪的东西也会使代码真正发挥作用。对于像telerik控件这样的东西使用资源文件的情况尤其如此,如本快速教程中的控件所示:

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

如果您现在要添加名称

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

嗯,一切都会在整个地方bar,因为空间意味着什么。

(在上述链接中也很明显,为什么期间不再有效)

我想我也可以说,似乎微软的某个人肯定认为这是一个错误,这就是为什么visual studio会给你这个错误的原因。虽然,对我们的权威和权力提出质疑肯定是好的。

从长远来看,可能没有理由为什么你需要做一些非常规的事情。