XML Serialization in C#

2019-03-19 16:48发布

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

7条回答
太酷不给撩
2楼-- · 2019-03-19 17:27

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.

查看更多
来,给爷笑一个
4楼-- · 2019-03-19 17:37

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

查看更多
Root(大扎)
5楼-- · 2019-03-19 17:39

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

查看更多
手持菜刀,她持情操
6楼-- · 2019-03-19 17:39

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.

查看更多
贪生不怕死
7楼-- · 2019-03-19 17:41

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();
查看更多
登录 后发表回答