C# 序列化

public class CustomStyleHelper
    {

        public static void DoSerialize(string strFile,CustomStyle customstyle)
        {
            using (FileStream fs = new FileStream(strFile, FileMode.OpenOrCreate))
            {
                XmlSerializer formatter = new XmlSerializer(typeof(CustomStyle));
                formatter.Serialize(fs, customstyle);
            }
 
        }
        public static CustomStyle DeSerialize(string strFile)
        {
            CustomStyle customstyle;
            using (FileStream fs = new FileStream(strFile, FileMode.Open))
            {
                XmlSerializer formatter = new XmlSerializer(typeof(CustomStyle));
                customstyle = (CustomStyle)formatter.Deserialize(fs);
            }
            return customstyle;
 
        }

        //XML序列化方式不能序列化对象类型属性(比如Color),只能序列化int string类型属性
        //Binary序列化方式可以序列化对象类型属性(比如Color),也能序列化int string类型属性
        //zhangjun 2010.12.10
        public static void BinaryDoSerialize(string strFile, CustomStyle customstyle)
        {
            using (FileStream fs = new FileStream(strFile, FileMode.OpenOrCreate))
            {
                BinaryFormatter formatter = new BinaryFormatter();
                formatter.Serialize(fs, customstyle);
            }

        }
        public static CustomStyle BinaryDeSerialize(string strFile)
        {
            CustomStyle customstyle;
            using (FileStream fs = new FileStream(strFile, FileMode.Open))
            {
                BinaryFormatter formatter = new BinaryFormatter();
                customstyle = (CustomStyle)formatter.Deserialize(fs);
            }
            return customstyle;

        }

        public static IRgbColor Color2RgbColor(Color color)
        {

            IRgbColor NewColor = new RgbColor();
            NewColor.Blue = color.B;
            NewColor.Red = color.R;
            NewColor.Green = color.G;

            if (color.Name.ToUpper() == "TRANSPARENT")
            {
                NewColor.Transparency = 0;
            }

            return NewColor;
        }




    }

    [Serializable]
    public class CustomStyle
    {
        private Color sColor;
        public Color SColor
        {
            get { return sColor; }
            set { sColor = value; }
        }

        private double sWidth;
        public double SWidth
        {
            get { return sWidth; }
            set { sWidth = value; }
        }

        private Color dColor;
        public Color DColor
        {
            get { return dColor; }
            set { dColor = value; }
        }

        private double dWidth;
        public double DWidth
        {
            get { return dWidth; }
            set { dWidth = value; }
        }



    }
原文地址:https://www.cnblogs.com/zhangjun1130/p/1902353.html