Сериализация XML в C # - PullRequest
       11

Сериализация XML в C #

9 голосов
/ 07 июля 2010

Где я могу найти хороший учебник по сериализации XMl для объекта?Спасибо.

Ответы [ 7 ]

6 голосов
/ 07 июля 2010

Это действительно довольно просто, есть только три основных шага.

  1. Вам нужно пометить свои классы атрибутом [Serializable].
  2. Написать код сериализации
  3. Написать код десериализации

Сериализация:

var x = new XmlSerializer(typeof(YourClass));
var fs = new FileStream(@"C:\YourFile.xml"), FileMode.OpenOrCreate);
x.Serialize(fs, yourInstance);
fs.Close();

Десериализация:

var x = new XmlSerializer(typeof(YourClass));
var fs = new FileStream(@"C:\YourFile.xml"), FileMode.Open);
var fromFile = x.Deserialize(fs) as YourClass;
fs.Close();
5 голосов
/ 07 июля 2010

Существует базовое руководство по страницам поддержки Microsoft , а их пример кода длиной всего в несколько строк:

using System;

public class clsPerson
{
  public  string FirstName;
  public  string MI;
  public  string LastName;
}

class class1
{ 
   static void Main(string[] args)
   {
      clsPerson p=new clsPerson();
      p.FirstName = "Jeff";
      p.MI = "A";
      p.LastName = "Price";
      System.Xml.Serialization.XmlSerializer x = new System.Xml.Serialization.XmlSerializer(p.GetType());
      x.Serialize(Console.Out, p);
      Console.WriteLine();
      Console.ReadLine();
   }
}

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

1 голос
/ 08 июля 2010

Вы можете легко найти множество учебников о сериализации данных, используя .Net в Интернете.Однако позвольте мне напомнить некоторые моменты:

  1. Типы сериализации:

    a.Сериализация XML: Пожалуйста, посмотрите на http://www.switchonthecode.com/tutorials/csharp-tutorial-xml-serialization

    b.Двоичная сериализация: пожалуйста, обратитесь к http://www.switchonthecode.com/tutorials/csharp-tutorial-serialize-objects-to-a-file

  2. Также, пожалуйста, помните об аспектах безопасности при работе (чтение и запись данных) с файлами.Здесь есть хороший учебник http://msdn.microsoft.com/en-us/library/system.security.permissions.fileiopermission.aspx

1 голос
/ 07 июля 2010

Вот хорошее начало Microsoft

Также обратите внимание на XML-схему и автоматическое создание классов с помощью xsd.exe . Чем раньше вы к этому привыкнете, тем лучше, это сэкономит вам много усилий при работе с XML. Также просмотр сгенерированных файлов c # дает вам некоторые подсказки о том, как использовать атрибуты для манипулирования тем, как классы сериализуются XmlSerializer *1008*

1 голос
/ 07 июля 2010

В MSDN есть достойная статья об этом: http://msdn.microsoft.com/en-us/library/ms733901.aspx

А это немного проще: http://www.dotnetjohn.com/articles.aspx?articleid=173

0 голосов
/ 10 июля 2010

Мы используем сериализацию для записи данных в двоичном формате и в формате XML.для двоичного формата мы используем BibnaryFormatSerialization, а для формата XML - SoapFormatSerialization.

...