Sai*_*udo 2 c# string resource-file
我在类库项目中有一个资源文件.我正在使用此资源文件来保存用户可能最终看到的各种消息.
例如,资源的名称是"InvalidEmailAddress",en-US资源文件中的值是"无效的电子邮件地址".
当我调用ResourceManager的GetString(string)方法时,我这样做:
return resourceManager.GetString("InvalidEmailAddress");
Run Code Online (Sandbox Code Playgroud)
但是,这对我来说真的很糟糕.如果有人更改资源的名称怎么办?现在我的语句将返回一个空值.
有没有解决这个问题的方法?
更新:本地化是一个重要因素.使用资源管理器是为了确保我可以更改文化并获取适当的字符串值.
您可以改为使用自动生成的类 - 魔术字符串常量将从代码中删除,并替换为强类型访问方法.VS将此文件命名为ResourceName.Designer.cs,并在每次在VS中修改resx时更新它.
生成方法的示例:
internal static string String1 {
get {
return ResourceManager.GetString("String1", resourceCulture);
}
Run Code Online (Sandbox Code Playgroud)
注意:虽然在VS中添加新资源时创建此文件是默认行为,但您可能已将其禁用,或者您可能已尝试在程序集外部使用生成的资源.在这种情况下,请确保将"自定义工具"属性或resx文件设置为"PublicResXFileCodeGenerator"或"ResXFileCodeGenerator"(稍后如果仅在单个程序集中使用资源).(感谢@dbaseman发表评论).
| 归档时间: |
|
| 查看次数: |
839 次 |
| 最近记录: |