2011-10-12 65 views
1

我正在构建一个Silverlight 3应用程序,我想知道什么是存储字符串文本以供应用程序使用的最佳方法。在Silverlight应用程序中存储字符串资源的标准方法

理想情况下,这些字符串将以某种XML或独立可编辑格式进行外部化,而不是二进制编译到我的应用程序中。

+0

没有“标准”是“外部化”字符串资源。我猜测第二句对你来说比第一句更重要。 – AnthonyWJones

回答

0

使用资源文件(.resx)存储字符串。

+0

我不认为这会给我的可重新定义,我想虽然正确,因为资源文件被编译到我的.dll,而我希望此文件在运行时进行外部化。这是关键的事情:“这不是二进制编译到我的应用程序” – kaes

0

资源文件将被存储这样的字符串

1

我倾向于使用ResourceDictionary了XAML文件中实现这一目标的最好的地方。

<ResourceDictionary 
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
    xmlns:sys="clr-namespace:System;assembly=mscorlib" 
> 
    <sys:String x:Key="hello">Hello</sys:String> 
    <sys:String x:Key="world">World</sys:String> 
</ResourceDictionary> 

注意这个文件没有x:Class。您不会将其作为内容或应用程序构建中的资源。你可以将它包含在XAP存储在网站上的ClientBin文件夹中。

你会再使用WebClientDownloadStringAsync下载这个文件,并通过推其XamlReader让你的ResourceDictionary,你现在可以用它来解决字符串引用实例生成的字符串。实际上,如果将此字典添加到App.Resources的合并字典中,它的项目可以解析为静态资源。

+0

好酷。这是否只是有一个原始的XML文件和解析该原始XML文件的任何好处?即 - 这几乎是我在这里做的对吗? – kaes

+0

@keas:当然,使用自己的xml文件会非常简单,但是您需要编写自己的xml处理来将Xml转换为某种形式的字典。因此,我在这里使用Xaml的主要优点是'XamlReader'可以为你工作。 – AnthonyWJones

相关问题