资源(.resx)文件关键命名约定?
我正在构建一个C#应用程序,它可能包含一些资源文件来存储字符串以用于语言翻译。 我正在尝试为我的资源文件中的Keys提出命名约定。 有没有人在我面前解决这个问题?
只需使用Pascal命名约定。 不要将密钥归因于模块或类。 概括它以便可以重复使用。
例如:ReadWriteWarningMessage
点分隔约定适用于菜单项。 但是动态生成的字符串或用户消息呢?
您是否考虑过像Menu_File_Open或类似Place_StringDescription之类的下划线? 我目前正在使用一种方案,其中常见的东西像Common_PressHereTo一样去Common_,并且查看特定的东西去MainMenu_FileOpen等各自的位置。 通常,在下划线之前,我会在资源显示的位置输入,并在下划线描述文本之后输入。
我尝试组织它类似于我用来布局程序结构的命名空间。 因此,如果您有MyCompany.MyProduct.MyModule,那么该模块中的字符串将是MyModule_Blah_Blah。 这样他们在整个产品中是独一无二的。
如果您在资源中拥有名称值对
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));
希望这会有所帮助。