2009-11-04 41 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