【问题标题】:Extend C# file based resource manager扩展基于 C# 文件的资源管理器
【发布时间】:2010-12-13 01:13:07
【问题描述】:

我想以与 NET 的 .resources(特别是 .po)不同的文件格式存储我的资源,因此我编写了一个自定义资源集,其中包含自定义资源读取器来检索它们。我使用 CreateFileBasedResourceManager 静态方法创建了一个 ResourceManager,该方法创建了一个新的管理器实例,该实例使用指定的资源集(我在我的案例中编写的自定义资源集)从特定目录中的文件中检索资源集,使用 Name.culture.resources文件名。

但是,我想更改文件名约定。我注意到有一个可覆盖的 GetResourceFileName 方法正是为了这个目的。但是使用反射器我注意到 CreateFileBasedResourceManager 使用的构造函数是私有的,否则无法设置“使用文件而不是程序集”标志。

有什么办法可以绕过这个,而不需要重新实现整个 InternalGetResourceSet 方法?

非常感谢!

【问题讨论】:

  • 你有没有得到这个排序?您可以在应用程序中使用反射来解决“私人标志”问题
  • 我使用反射器简单地复制资源管理器的实现并修改我需要的任何内容。不是很优雅,但很有效。

标签: c# resourcemanager


【解决方案1】:

Mono 有一个很好的小实用程序,它称为 Msgfmt,可用于从 .po 文件目录创建 .resources 文件。

Msgfmt.exe -iMessages.es.po -oMessages.es.resources

我遇到了一篇有趣的文章@http://weblogs.manas.com.ar/spalladino/2009/10/01/using-gnu-gettext-for-i18n-in-c-and-asp-net/,它帮助了我,它也可能对你有所帮助..

这是一种不同的方法,但它对我有用!

【讨论】:

  • 感谢文章的链接……但作者其实是我自己:P
  • 不错的文章...值得记住的...在发布链接之前检查文章的作者!
猜你喜欢
  • 2012-03-05
  • 2017-08-18
  • 1970-01-01
  • 2011-12-24
  • 2019-04-17
  • 1970-01-01
  • 2015-03-02
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多