是否有任何方便的方法来序列化存储在Resources.resx文件中(以多种语言)存储的字符串的引用。我想稍后访问它(应用程序可能已重新启动后)并以当前活动的语言显示它。序列化可本地化的字符串
另一个用例是将“资源项”传递给某种方法,例如,显示错误消息(使用当前活动的语言),同时用英语记录消息(以便我们可以对其进行调试)。
需要牢记的一点是,我们不只有一个Resource.resx文件(在这种情况下,我们可以简单地存储密钥并使用ResourceManager
实例),但是其中大量的应用。
有多种用例:一个目的是避免不必要的代码重复。这是更方便写类似ShowMessage(messageKey)
(其中显示消息并记录它),而不是写
ShowMessage(Resources.ResourceManager.GetString("Key", CultureInfo.CurrentCulture));
Log(Resources.ResourceManager.GetString("Key", CultureInfo.InvariantCulture));
这也将有一定的局部异常(有用的,这样的组件不必须知道什么关于ShowMessage方法)。在我的情况下,我有一些可序列化的CNC宏,我想要一些本地化的消息步骤(用户在继续之前必须做一些手动操作)。配置宏和执行时,语言可能会有所不同。
真的有这个需求吗?这些资源应该用作静态资源,动态使用它们看起来像是一种代码异味。你可以勾画使用情况吗? – Santhos
因此......如果你的挂断是每次写出这两行的时间过多,为什么不把它解压到一个单独的方法呢? – DrewJordan
问题是应用程序是模块化的。我们有大约100个装配 - 所以我们必须在每个装配中重新定义这种方法... – LionAM