2009-11-04 83 views
11

我想我的资源存储在除净的的.resources不同的文件格式(特别的.po),所以我写了一个自定义资源读者检索它们设置自定义资源。我使用CreateFileBasedResourceManager静态方法创建了一个ResourceManager,该方法创建了一个管理器的新实例,它使用指定的资源集(我编写的自定义资源集),使用Name.culture.resources从特定目录中的文件中检索资源集文件名。扩展C#基于文件资源管理器

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

有没有什么办法去解决这个问题,而无需重新实现整个InternalGetResourceSet方法?

非常感谢!

+1

你有没有得到这个排序?你可以在应用程序中使用反射来超过“私有标志”问题 – jcolebrand 2011-02-06 02:16:45

+1

我使用反射器来简单地复制资源管理器的实现并修改我需要的任何东西。不是很优雅,但它的工作。 – 2011-02-09 02:53:05

回答

1

单具有良好的小工具,有助于这一点,其所谓的msgfmt,可用于创建的.resources文件从.po文件目录。

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/这帮助我,这很可能帮助你太..

它是一种不同的方法,但它为我工作!

+2

感谢您的文章链接...但作者实际上是我自己:P – 2011-02-09 02:51:36

+0

好文章...这是一个要记住的......在发布链接之前检查文章的作者! – 2011-02-09 08:37:36