using System;
using System.Data;
using System.Xml;
using System.Xml.Serialization;
using System.IO;namespace Serialization
{

class Class1
{

[STAThread]
static void Main(string[] args)
{
// 序列化
MyObject my = new MyObject();
my.n1 = 100;
my.n2 = 200;
my.str = "this is a program";
FileStream fs = new FileStream("MyObject.xml",FileMode.Create,FileAccess.Write);
XmlSerializer xs = new XmlSerializer(typeof(MyObject));
xs.Serialize(fs,my);
fs.Close(); // 反序列化
FileStream fs2 = new FileStream("MyObject.xml",FileMode.Open,FileAccess.Read);
XmlSerializer xs2 = new XmlSerializer(typeof(MyObject));
MyObject my2 = (MyObject)xs2.Deserialize(fs2);
fs2.Close(); Console.WriteLine(my2.n1);
Console.WriteLine(my2.n2);
Console.WriteLine(my2.str);
      }
}
public class MyObject 
{
public int n1 = 0;
public int n2 = 0;
public string str = string.Empty;
}
}

解决方案 »

  1.   

    public class MyObject   前面要加上允许序列化的说明  [Serializable]
    public class MyObject 
      

  2.   

    对的。要有可序列化标示
      [Serializable]
    或实现相应的接口。
      

  3.   

    还不行啊
    未处理的异常: System.IO.FileNotFoundException: 找不到文件或程序集名称“luflyege
    .dll”,或找不到它的一个依赖项。
      

  4.   

    我是在Winform 下用的,不行啊,路径就是应用程序当前路径啊
      

  5.   

    不需要加[Serializable]标记.
    是文件路径问题或人品问题.
      

  6.   

    WEB 下都可以用我写的序列化,Console 下就不行呢??
      

  7.   

    Winform  和 WebForm 都可以运行, 惟独 Console 不能运行。
    这能是.NET 的一个BUG 吧。
    好了,不用麻烦各位了
      

  8.   

    不是BUG,你把public class MyObject 
    {
    public int n1 = 0;
    public int n2 = 0;
    public string str = string.Empty;
    }写在外面就可以了。