c# - 扩展基于 C# 文件的资源管理器

标签 c# resourcemanager

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

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

有没有办法解决这个问题,而不需要重新实现整个 InternalGetResourceSet 方法?

非常感谢!

最佳答案

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/这对我有帮助,也可能对你有帮助..

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

关于c# - 扩展基于 C# 文件的资源管理器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1674192/

相关文章:

c# - 还有另一种方法可以检查用户所在的 .net 角色吗?

Asp.net 本地化 - 覆盖页面将使用的 resx 文件

hadoop - Hadoop 2.x 上的应用程序(作业)列表为空

c# - 旋转方 block 的 6 个面

c# - Visual Studio 2012 Express for Web 不运行单元测试

c# - 远程服务器返回错误 : (405) Method Not Allowed. WCF REST 服务

c++ - 创建一个非拥有的 shared_ptr?

c# - 如何检查 Win32 窗口指针是否是有效的 .Net 控件?

hadoop - 无法在 yarn 中启动资源管理器

Hadoop ResourceManager HA 连接到 ResourceManager at/0.0.0.0 :8032