2012-09-05 70 views
4

對於C#/ XAML在Windows 8應用程序,我需要訪問特定的ressource文件。在WP7中,我使用了resx文件,現在看來我們需要使用resw文件。這不是一個語言資源文件。 我的文件名爲ConfigResources.resw,它只包含一個鍵:「ConfigFile」和一個值:一個字符串。如何訪問特定resw資源文件

我怎樣才能從我的代碼訪問它?我試了這個沒有任何運氣:

var storedConfigFile = Application.Current.Resources["ConfigResources"]; 

那麼我怎麼能編輯我的代碼裏面的密鑰的值?

謝謝

+0

的完整版本使用的ResX文件輔助類也有看http://blog.rsuter.com/?p=439 –

回答

4

有一個sample,顯示了不同的方式來閱讀的WinRT應用程序的資源(即從resw文件)。

+0

謝謝你真的helped.I使用MainResourceMap:VAR storedConfigFile = ResourceManager.Current.MainResourceMap.GetValue( 「ConfigResources/ConfigFile實現」); –

5

here,您需要使用Windows.ApplicationModel.Resources.ResourceLoaderWindows.ApplicationModel.Resources.Core命名空間提供resw文件交互。

它應該是這個樣子:

var loader = new Windows.ApplicationModel.Resources.ResourceLoader(); 
var text = loader.GetString("Farewell"); 

或者,如果要創建一個跨平臺的庫,你也可以做到這一點使用System.Resources.ResourceManager

雖然在System.Resources .ResourceManager類包含在.NET應用商店的 .NET中,我們不建議使用它。僅在開發可移植 類庫項目和目標多平臺庫使用 的ResourceManager。

篩選從here

ResourceManager rm = new ResourceManager("Strings", typeof(Example).Assembly); 
string timeString = rm.GetString("TimeHeader"); 
+0

是我已經看到這個鏈接問題是我如何告訴我的應用程序,我的ConfigResources.resw文件是一個資源。 var loader = new Windows.ApplicationModel.Resources.ResourceLoader();不起作用......並且我不使用跨平臺的庫。 –

+0

@AstironNaviir啊,我將不得不看看我能否在未來幾天找到一些時間來玩它。今天整夜和整夜上課。 :-P – mydogisbox

+0

例如,對於翻譯或固定語言,ResourceManager還需要以與應用程序的其餘部分不同的語言顯示字符串。 ResourceLoader只能處理一種活動語言(和後備)。 –

7

我創建了一個項目在CodePlex近日呼籲ResW File Code Generator,它簡化了在Windows應用商店的應用程序項目使用本地化資源的代碼。這是一個自定義的工具,可自動生成和更新類似於在.NET

+0

這是純金! – dcastro

+0

我正在使用相同的,但你嘗試在後臺任務中使用.resw文件? –