在WP7中打开本地xml文件

时间:2011-08-31 04:02:56

标签: c# windows-phone-7 silverlight-4.0

我有一个本地xml文件,需要在我的应用程序时将其加载到隔离存储。第一次开始。但是,如果我使用流或文件打开该文件。打开它会引发错误。 此外,我需要以序列化形式存储该文件。请帮助,因为对WP7和C#的新手不能破解它。

以下代码用于打开XML文件:

FileStream stream = new FileStream("site.xml", FileMode.Open);

2 个答案:

答案 0 :(得分:2)

如果文件是项目的一部分,那么您可以将文件作为资源添加到项目中。这意味着该文件的文件“Build Action”应为“资源”。以下函数可以从项目资源中读取文件。

Stream stream = this.GetType().Assembly.GetManifestResourceStream("Namespace.FileName.FileExtentation");

现在您可以根据文件类型读取流。如果它是XML文件,那么您可以像下面一样阅读它。

举个例子

XElement element = XElement.Load(stream);
foreach (XElement phraseElement in element.Elements())
{
    MyClass foo = new foo();
    foreach (XAttribute attribute in phraseElement.Attributes())
      foo.Text = attribute.Value;

}

如何写入隔离存储并从隔离存储中读取文件?请查看以下链接

http://www.codebadger.com/blog/post/2010/09/03/Using-Isolated-Storage-on-Windows-Phone-7.aspx

您还可以查看以下有关Windows Phone的本地数据存储的链接。

http://msdn.microsoft.com/en-us/library/ff626522%28v=vs.92%29.aspx

答案 1 :(得分:1)

您还需要为任何内容类型资源指定FileAccess模式,因为您无法在写入模式下打开它。

尝试将您的代码更改为:

FileStream stream = new FileStream("site.xml", FileMode.Open, FileAccess.Read);

另请参阅此问题:How to fix exception MethodAccessException during file reading?