我正在使用CMS工具生成.resx资源文件。
创建带有空格或标点字符的资源名称是否有任何危险?
如果我使用这种语法获取资源,它可以正常工作:
GetGlobalResourceObject("myresources", "audio,visual");
但是,这会导致声明性资源语法出错,例如:
<asp:Literal ID="litLastName" runat="server" Text="<%$ Resources: GlobalResources,audio,visual %>"></asp:Literal>
此外,当我在Visual Studio中编辑.resx文件时,如果我的资源键包含除字母数字和下划线之外的任何字符,它会向我发出警告。它说“资源名称”不是有效的标识符“。
我在这里打破了.NET规则吗?
答案 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会给你这个错误的原因。虽然,对我们的权威和权力提出质疑肯定是好的。
从长远来看,可能没有理由为什么你需要做一些非常规的事情。