我正在构建一个Silverlight 3应用程序,我想知道什么是存储字符串文本以供应用程序使用的最佳方法。在Silverlight应用程序中存储字符串资源的标准方法
理想情况下,这些字符串将以某种XML或独立可编辑格式进行外部化,而不是二进制编译到我的应用程序中。
我正在构建一个Silverlight 3应用程序,我想知道什么是存储字符串文本以供应用程序使用的最佳方法。在Silverlight应用程序中存储字符串资源的标准方法
理想情况下,这些字符串将以某种XML或独立可编辑格式进行外部化,而不是二进制编译到我的应用程序中。
使用资源文件(.resx)存储字符串。
我不认为这会给我的可重新定义,我想虽然正确,因为资源文件被编译到我的.dll,而我希望此文件在运行时进行外部化。这是关键的事情:“这不是二进制编译到我的应用程序” – kaes
资源文件将被存储这样的字符串
我倾向于使用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文件夹中。
你会再使用WebClient
DownloadStringAsync
下载这个文件,并通过推其XamlReader
让你的ResourceDictionary
,你现在可以用它来解决字符串引用实例生成的字符串。实际上,如果将此字典添加到App.Resources的合并字典中,它的项目可以解析为静态资源。
好酷。这是否只是有一个原始的XML文件和解析该原始XML文件的任何好处?即 - 这几乎是我在这里做的对吗? – kaes
@keas:当然,使用自己的xml文件会非常简单,但是您需要编写自己的xml处理来将Xml转换为某种形式的字典。因此,我在这里使用Xaml的主要优点是'XamlReader'可以为你工作。 – AnthonyWJones
没有“标准”是“外部化”字符串资源。我猜测第二句对你来说比第一句更重要。 – AnthonyWJones