2012-08-22 117 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