2012-08-22 11 views
5

Die Seite Names of Resources auf MSDN sagt Folgendes.Wie verschachtle ich Ressourcenidentifikatoren?

Verwenden Sie den Punkttrenner ("."), Um Bezeichner mit einer klaren Hierarchie zu verschachteln.

Zum Beispiel entsprechen Namen wie Menus.FileMenu.Close.Text und Menus.FileMenu.Close.Color dieser Richtlinie.

Wie mache ich das? Wenn ich es versuche, wird mir gesagt, dass ein Punkt in einer Ressourcen-ID nicht gültig ist.

Disappointing.

kann ich verstehen, warum es nicht gültig ist [1], weshalb ich immer davon ausgegangen, es nisten Resource Identifiers nicht möglich war, und bisher noch nie versucht ... aber MSDN sagt, ich kann. Was vermisse ich?

[1] Von der automatisch generierten Datei Resource.Designer.cs.

Antwort

2

Ich habe das auch gesehen und es sieht so aus, als ob es schon seit ein paar Jahren existiert.

Der Generator für starke Typen generiert eine stark typisierte Klasse und ordnet jede Ressource einer Eigenschaft dieser Klasse zu. Der Ressourcenname (Bezeichner) wird als Name der Eigenschaft verwendet. Ein Bezeichner mit einem Punktzeichen ist in C# nicht gültig (wie Sie in der Frage angegeben haben). Der Generator ersetzt den Punkt jedoch durch einen Unterstrich, sodass Sie immer noch eine gültige, stark typisierte Klasse erhalten.

Ich ersetze in der Regel nur den Punkt mit einem Unterstrich. Es ist seltsam, dass sie das in den Richtlinien immer noch nicht geändert haben. (Oder vielleicht habe ich etwas verpasst?)

+1

Auch tat das gleiche mit Unterstreichungszeichen. – umlcat

+0

Ich habe aus der Reflektion bemerkt, dass Microsoft intern Unterstriche zu verwenden scheint, um Ressourcen zu trennen, also ist es vielleicht * einfach veraltete Dokumentation. – crdx

+0

"Allerdings wird der Generator den Punkt durch Unterstrich ersetzen" Ich konnte das nicht passieren. Es klagt einfach wie in meinem Screenshot. – crdx