您的代碼試圖打開一個名爲「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