C#Silverlight - 来自Uri的XmlDictionary

时间:2012-06-30 20:56:30

标签: c# xml silverlight filestream relative-path

我一直在为公司的网站开发Silverlight应用程序并遇到了问题。

到目前为止,我一直在本地编程,现在我需要将该程序发布到网站上;问题是FileStream只能访问具有提升权限的本地文件。

以下是一段代码:

using (FileStream fileStream = new FileStream(@"E:\Users\LUPUS\Documents\Visual Studio 2010\Projects\Lycaon5\Lycaon5\acids.xdb", FileMode.Open))
 {
using (XmlDictionaryReader reader = XmlDictionaryReader.CreateTextReader(fileStream, XmlDictionaryReaderQuotas.Max))
  {
    //Read the XML file out.
  }
 }

不改变与XmlDictionaryReader阅读器有关的任何内容 - 我怎样才能从相对的Uri中读取文件?

非常感谢,

罗布。

P.S。对于缺乏格式化的道歉,我洞穴男人,我不知道如何。

1 个答案:

答案 0 :(得分:1)

编译时将文件嵌入到程序集中。然后,您可以将其作为资源流阅读:http://msdn.microsoft.com/en-us/library/cc296240%28VS.95%29.aspx

(确保您将文件嵌入类型Resource以使此方法起作用)

您的代码可能看起来像这样来获取文件流:

Uri uri = new Uri("/MyAssemblyName;component/acids.xdb", UriKind.Relative);
StreamResourceInfo streamInfo = Application.GetResourceStream(uri);
Stream fileStream = streamInfo.Stream;

using (XmlDictionaryReader reader = XmlDictionaryReader.CreateTextReader(fileStream, XmlDictionaryReaderQuotas.Max))
{
    //Read the XML file out.
}
编辑:正如Tim S指出的那样,这只适用于数据文件是静态的并且在编译时修复的情况。否则,您可以使用其他方法从网站下载文件(因为他链接到)。