2009-05-22 114 views
22

私は言語変換に使用するために文字列を格納するためのリソースファイルを含む可能性が高いC#アプリケーションを構築しています。私は私のresouceファイルのキーの命名規則を考え出すことを試みています。誰も私の前にこれに取り組んでいますか?リソース(.resx)ファイルキー命名規則?

答えて

11

パスカル命名規則を使用してください。キーはモジュールまたはクラスに属していません。再利用できるように一般化してください。

例:ReadWriteWarningMessage

ドットが規則は、メニュー項目の罰金に動作し分離しました。しかし、動的に生成される文字列やユーザーメッセージはどうでしょうか。

0

あなたは

CloseConfirmationなどのリソースでの名前値のペアを持っている場合 - あなたは保存せずにウィンドウを閉じますか?

Messagesという新しいクラスを追加します。

public static class Messages 
{ 
    public const String CloseConfirmation = "CloseConfirmation"; 
    public static String GetMessage(String messageId) 
    { 
     return //your namespace//.Properties.Resources.ResourceManager.GetString(messageId); 
    }} 

、それは

MessageBox.Show(Messages.GetMessage(Messages.CloseConfirmation)); 

を使用するアクセスするためには、これが役立つことを願っています。

+1

これはキーの命名規則ではなく、リソースファイル内のメッセージへのアクセス方法に関する方針です。 – Juri

+0

Prajeeshに感謝、私は問題なくリソースにアクセスできます。私の問題は、私は数百の鍵を持っている可能性があり、それらを見て簡単な方法を望んでいるということです。私はメニューのキャプションの例として、Menu.File.Openのような慣習的な大会に出くわしました。私はこのアプローチが気に入っていますが、強く型付けされたリソース(私は)を使用するときには小数点以下を前提にしていません。しかし、ありがとう... – Dawsy

4

Menu_File_OpenやPlace_StringDescriptionのようなアンダースコアを考慮していますか? 私は現在、一般的なものがCommon_PressHereToのようなCommon_に行き、特定のビューがMainMenu_FileOpenのようなそれぞれの場所に行くスキームを採用しています。一般に、アンダースコアの前には、リソースが表示される場所とアンダースコアの後ろに説明的なテキストが入力されます。

2

私はプログラム構造をレイアウトするために使用している名前空間と同様に整理しようとします。 MyCompany.MyProduct.MyModuleがある場合、そのモジュールの文字列はMyModule_Blah_Blahになります。そうすれば、それらは製品全体でユニークなものになります。