序列化使用extension methods.

namespace TestConsole
{
    public static class ObjectHelper
    {
        public static string MySerialize(this object obj)
        {
            XmlSerializer xmlSerializer = new XmlSerializer(obj.GetType());
            MemoryStream stream = new MemoryStream();
            xmlSerializer.Serialize(stream, obj);
            byte[] buf = stream.ToArray();
            string xml = Encoding.ASCII.GetString(buf);
            stream.Close();
            return xml;
        }

        public static T MyDeserialize<T>(this string s)
        {
            XmlSerializer xmlSerializer = new XmlSerializer(typeof(T));
            byte[] buf = Encoding.ASCII.GetBytes(s);
            MemoryStream stream = new MemoryStream(buf);
            T o = (T)xmlSerializer.Deserialize(stream);
            return o;
        }
    }

    [Serializable]
    public class MyClass
    {
        public string Name { get; set; }
        public int age { get; set; }

        public MyClass()
        {
            Name = "guest";
            age = 12;
        }
    }

    class Test
    {
        public static void Main(string[] args)
        {
            MyClass mc = new MyClass();
            string xml = mc.MySerialize();
            Console.WriteLine("xml is " + xml);

            MyClass obj = xml.MyDeserialize<MyClass>();
            Console.WriteLine("deserializ is " + obj.age + " " + obj.Name);
            Console.ReadLine();
        }
    }
}