Application.GetResourceStream无法在Uri中归档文件

时间:2013-09-07 17:27:30

标签: c# silverlight windows-phone-7

我正在尝试访问.js文件。 该文件位于数据库文件夹中,名为 myfile.js ,它只是一个JSON格式的文本文件。

这是我正在使用的代码(这是从 MainPage.xaml.cs

运行的
Uri uri = new Uri("/Database/myfile.js", UriKind.Relative);
var resource = Application.GetResourceStream(uri);

StreamReader streamReader = new StreamReader(resource.Stream);
string rawData = streamReader.ReadToEnd();

它始终抛出NullReferenceException的异常,因为resource变量为空。

所以,问题在于Uri。我试着用:

@"/Database/myfile.js"
"/Database/myfile.js"
"/LQI;component/Database/myfile.js"

但它不起作用。 当我尝试将文件移动到根目录并用

替换Uri字符串时
@"myfile.js"

它有效!但我不希望这样。

我也尝试将扩展名重命名为.txt,但没有。

请帮忙。 谢谢!

编辑:我将Build Action设置为默认的“Content”。我试图将其设置为“资源”,但它既不起作用。

编辑#2:好的,我找到了一条线索(https://stackoverflow.com/a/12122332/2649132LQI;component/Database/myfile.js仅在我将项目设置为资源时才起作用。它确实有效。 但是,当我使用常规路径将构建操作设置为“内容”时,问题仍然存在,因为我无法工作。

1 个答案:

答案 0 :(得分:2)

路径是一个相对路径,所以从路径字符串中取出前导“/”,使其显示为“Database / myfile.js”,它应该可以正常工作。