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

fra*_*lic 2 asp.net resources resx internationalization

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

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

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

GetGlobalResourceObject("myresources", "audio,visual");
Run Code Online (Sandbox Code Playgroud)

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

<asp:Literal ID="litLastName" runat="server" Text="<%$ Resources: GlobalResources,audio,visual %>"></asp:Literal>
Run Code Online (Sandbox Code Playgroud)

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

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

Ant*_*tts 5

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

以下是asp.net论坛中的评论,声明不允许使用句点:

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

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

资源(.resx)文件关键命名约定?

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

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

如果现在你在那里添加一个名字

I like to put spaces in resource keys.ChartTitle.TextBlock.Text
Run Code Online (Sandbox Code Playgroud)

好吧,一切都会在整个地方bar because,因为空间意味着什么.

(在上面的链接中也很明显,为什么这段时间不再有效)

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

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