2012-08-22 75 views
5

MSDN上的页面Names of Resources表示如下。如何嵌套资源标识符?

是否使用点分隔符(“。”)来嵌套具有清晰层次结构的标识符。

例如,名称如Menus.FileMenu.Close.TextMenus.FileMenu.Close.Color符合此准则。

我该怎么做?当我尝试时,我被告知一个点在资源标识符中无效,像这样。

Disappointing.

我能理解为什么它不是有效[1],这就是为什么我一直以为这是不可能的嵌套资源标识符,并且从来没有尝试过到现在为止...但MSDN说我能够。我错过了什么?

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

回答

2

我也看过这个,看起来已经有好几年了。

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

我通常只是用下划线替换点。奇怪的是,他们仍然没有改变准则中的内容。 (或者,也许我错过了什么?)

+1

也做了下划线字符相同。 – umlcat

+0

我从反思中已经注意到,内部微软似乎使用下划线来分隔资源,所以它可能只是过时的文档。 – crdx

+0

“但是,发电机将用下划线代替点”我一直无法做到这一点。它只是像我的截图一样抱怨。 – crdx