2011-08-31 145 views
1

我有一个本地xml文件,需要将它加载到隔离存储时,我的应用程序。第一次开始。但如果我打开该文件使用流或File.Open它是抛出一个错误。 另外我需要以序列化的形式存储该文件。请帮忙,因为对于WP7和C#而言,新手无法破解它。在WP7中打开一个本地xml文件

下面的代码是用于打开XML文件:

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

你能解释一下你的情况吗?你有这个文件已经在设备上?或者它在您的应用程序项目中?你想将它保存到独立的存储? –

+0

你能分享错误讯息吗? – Somnath

+0

是的,该文件在应用程序项目中,我需要将其存储在独立存储中。但每当我打开该文件并运行应用程序。引发异常如“尝试访问方法失败:System.IO.FileStream..ctor(System.String,System.IO.FileMode)” – Dheeraj

回答

1

你需要指定的FileAccess模式以及对任何内容类型的资源,因为你不能在写模式打开它。

试着改变你的代码:

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

而且,看到了这个问题:How to fix exception MethodAccessException during file reading?

+0

我打开一个“Content”文件site.xml如下; FileStream stream = new FileStream(“site.xml”,FileMode.Open); – Dheeraj

+0

查看我的更新回答。 –

2

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

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