.net 如何嵌套资源标识符?

.net 如何嵌套资源标识符?,.net,msdn,resx,.net,Msdn,Resx,MSDN上的页面说明如下 务必使用点分隔符(“.”)以清晰的层次结构嵌套标识符。 例如,Menus.FileMenu.Close.Text和Menus.FileMenu.Close.Color等名称符合此准则 我该怎么做?当我尝试这样做时,我被告知点在资源标识符中无效,如下所示 我可以理解为什么它无效[1],这就是为什么我一直认为不可能嵌套资源标识符,并且直到现在才尝试。。。但是MSDN说我可以。我错过了什么 [1] 通过查看自动生成的Resource.Designer.cs文件。我也看到了这

MSDN上的页面说明如下

务必使用点分隔符(“.”)以清晰的层次结构嵌套标识符。

例如,
Menus.FileMenu.Close.Text
Menus.FileMenu.Close.Color
等名称符合此准则

我该怎么做?当我尝试这样做时,我被告知点在资源标识符中无效,如下所示

我可以理解为什么它无效[1],这就是为什么我一直认为不可能嵌套资源标识符,并且直到现在才尝试。。。但是MSDN说我可以。我错过了什么


[1] 通过查看自动生成的
Resource.Designer.cs
文件。

我也看到了这一点,看起来它已经存在了几年了


强类型生成器生成一个强类型类,并将每个资源映射到该类的属性。资源名称(标识符)将用作属性的名称。带有点字符的标识符在C#中无效(如您在问题中所声明的)。但是,生成器将用下划线替换点,这样您仍然可以得到有效的强类型类


我通常只是用下划线替换点。但奇怪的是,他们在指南中仍然没有改变这一点。(或者可能我遗漏了什么?

对下划线字符也做了同样的处理。我从反思中注意到,Microsoft内部似乎使用下划线来分隔资源,因此可能它只是过时的文档。“但是,生成器将用下划线替换点”我无法做到这一点。它只是像我的截图一样抱怨。@apkd你是说在资源编辑器中?因为在生成的类中,属性具有下划线而不是点。虽然属性仍将使用带点的字符串来获取资源。如何添加资源?我不能加一个带点的