2012-09-05 36 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文件? –