简体   繁体   中英

XML Serialization in C#

Where Can I find good tutorial about XMl serialization to the object? Thanks.

Its really pretty simple, there are only three main steps.

  1. You need to mark your classes with the [Serializable] attribute.
  2. Write Serialization code
  3. Write Deserialization code

Serialization:

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

Deserialization:

var x = new XmlSerializer(typeof(YourClass));
var fs = new FileStream(@"C:\YourFile.xml"), FileMode.Open);
var fromFile = x.Deserialize(fs) as YourClass;
fs.Close();

There's a basic tutorial on Microsoft's support pages and their code example is only a few lines long:

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();
   }
}

Basically you don't have to anything other than call the built in functions that do all the hard work for you.

MSDN has a decent article about it: http://msdn.microsoft.com/en-us/library/ms733901.aspx

And this one's a bit more straightforward: http://www.dotnetjohn.com/articles.aspx?articleid=173

Here's a good start microsoft

Also look into Xml Schema and generating classes automatically with xsd.exe the sooner you get used to this the better, it can save you a lot of effort working with XML. Also looking at the generated c# files gives you some clues on how to use attributes to manipulate the way classes are serilized by the XmlSerializer

You can easily find many tutorials about serialization data using .Net on the Web. However, let me remind some points:

  1. Types of serialization:

    a. XML Serialization : Please have a look at http://www.switchonthecode.com/tutorials/csharp-tutorial-xml-serialization

    b. Binary Serialization: Please refer to http://www.switchonthecode.com/tutorials/csharp-tutorial-serialize-objects-to-a-file

  2. Also please be aware of the security aspects when you work (reading and writing data) with files. There is a good tutorial here http://msdn.microsoft.com/en-us/library/system.security.permissions.fileiopermission.aspx

We use Serialization to write the data in Binary Format and IN XML format. for binary format we use BibnaryFormatSerialization and for XML format we use SoapFormatSerialization.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM