Сохранить XML-файл Windows phone 7

#xml #windows-phone-7 #save

#xml #windows-phone-7 #Сохранить

Вопрос:

Как я могу сохранить XML-файл (код)? Всем привет. Я могу прочитать XML-файл, но не могу сохранить XML-файл: Пример: тема класса :

 public class Subject 
{
   public int Id 
   { 
     get; 
     set; 
   }
   public Subject() 
   {}
   public string Name 
   { 
     get; 
     set; 
   }
   public string Number 
   {
     get; 
     set; 
   }
}
 

Ученик класса :

 public class Student 
{
   public string Id 
   { 
      get; 
      set; 
   }
   public Student() 
   {}
   public string Name 
   {
      get; 
      set; 
   }

   public string IconURI 
   {
      get; 
      set; 
   }
   public List<Subject> Subjects 
   {
      get; 
      set; 
   }
}
 

MainPage.xaml.cs :

 public partial class MainPage : PhoneApplicationPage 
{
    public MainPage() 
    {
      InitializeComponent();
    }
    public List<Student> Students 
    {
      get; 
      set; 
    }
}
 

Загрузить файл xml :

 private void LoadXML() 
{
   Uri uri = new Uri("/DemoWP7;component/Save.xml", UriKind.Relative); 
   StreamResourceInfo xml = App.GetResourceStream(uri); 
   XDocument doc = XDocument.Load(xml.Stream);
   XElement menu = doc.Descendants("menu").First(); 
   Students = (from student in menu.Descendants("student") 
   select new Student() 
   {
      Id = student.Attribute("id").Value, 
      Name = student.Attribute("name").Value, 
      IconURI = student.Attribute("icon").Value, 
      Subjects = (from subject in student.Descendants("subject") 
      select new Subject() 
      {
         Name = subject.Attribute("name").Value, 
         Number = subject.Attribute("number").Value, 
      }).ToList<Subject>() 
    }).ToList<Student>(); 
}
 

Мне нужно сохранить файл .xml таким же образом, после этого loadXML()

 <?xml version="1.0" encoding="utf-8" ?> 
<menu> 
<student id="group1" name="Team A" icon="Images/Team-A.png"> 
<subject name="Math" 
number="72"> 
</subject> 
<subject name="Art" 
number="85"> 
</subject> 
</student>
<student id="group2" name="Team D" icon="Images/Team-D.png"> 
<subject name="History" 
number="69"> 
</subject> 
</student> 
 

Как я могу сохранить XML-файл (код)?

Ответ №1:

По соображениям безопасности у каждого приложения есть собственное место для хранения файлов — изоляция. Итак, если вы хотите сохранить свой файл, вам следует сделать что-то вроде этого:

     using(var appStorage = IsolatedStorageFile.GetUserStoreForApplication())
    using(var file = appStorage.OpenFile("YourFileName.xml", FileMode.OpenOrCreate))
    using(var writer = new StreamWriter(file))
    {
        writer.Write("Your data");
    }
 

Ответ №2:

Рассматривали ли вы возможность использования класса XmlSerializer и разметки вашего класса Subject атрибутами различных свойств? Это немного упростит ваш код — простой пример можно найти здесь. (и чтобы сохранить XML-файл, вам нужно записать его в IsolatedStorage для вашего конкретного экземпляра приложения, для которого, если вы быстро погуглите или посмотрите на другие ответы, вы найдете кучу примеров)