您的代码试图打开一个名为“Default.txt”的文件,该文件位于用户的文件系统中。究竟我不知道,因为它取决于Silverlight应用程序执行的位置。所以是的,一般来说你没有权限去那里。
若要从XAP中提取某些内容,需要以不同的方式构造流。它将沿着这些线:
Stream s = Application.GetResourceStream(
new Uri("/MyXap;component/Path/To/Default.txt", UriKind.Relative)).Stream;
StreamReader reader = new StreamReader(s);
请注意,这意味着您的Default.txt应设置为'资源',而不是'嵌入式资源'。通过成为'资源'它将被添加到XAP。嵌入式资源将把它添加到程序集中。
更多信息:http://nerddawg.blogspot.com/2008/03/silverlight-2-demystifying-uri.html
注:在你的Silverlight程序有多个组件,检查URI字符串的“/ MyXap”部分引用包含资源集的名称的情况。例如,如果你有两个组件“项目名”和“ProjectName.Screens”,其中“ProjectName.Screens”包含您的资源,然后使用以下命令:
new Uri("ProjectName.Screens;component/Path/To/Default.txt", UriKind.Relative))
设置为“资源”不被支持,它的加入到xap设置为“内容。uri然后是”/Path/To/Default.txt“。提供的链接说得对。 – John 2013-11-15 14:07:38