Откройте локальный XML-файл в WP7 - PullRequest
1 голос
/ 31 августа 2011

У меня есть локальный XML-файл, и мне нужно загрузить его в изолированное хранилище, когда мое приложение. начинается в первый раз. но если я открываю этот файл, используя поток ИЛИ File.Open, он выдает ошибку. Также мне нужно хранить этот файл в сериализованной форме. Пожалуйста, помогите, так как новичок в WP7 и C # не может взломать его.

Следующий код используется для открытия файла XML:

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

Ответы [ 2 ]

2 голосов
/ 31 августа 2011

Если файл является частью вашего проекта, вы можете добавить файл в свой проект в качестве ресурса.Это означает, что файл "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

1 голос
/ 31 августа 2011

Вам также необходимо указать режим FileAccess для любого ресурса типа контента, поскольку вы не можете открыть его в режиме записи.

Попробуйте изменить код на:

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

Также см. Этот вопрос: Как исправить исключение MethodAccessException при чтении файла?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...