zoukankan      html  css  js  c++  java
  • [WPF]xml序列化以及反序列化数据

    代码

    XML序列化工具类 

     public static class XMLHelper
        {
            /// <summary>
            /// 将对象序列化为指定的文件名
            /// </summary>
            /// <typeparam name="T"></typeparam>
            /// <param name="obj"></param>
            /// <param name="fileName"></param>
            /// <returns></returns>
            public static bool SaveObjAsXml<T>(T obj,string fileName)
            {
    
                var dir = Application.StartupPath;
                try
                {
                    FileStream fs = new FileStream(dir+"/"+fileName, FileMode.Create);
                    XmlSerializer xs = new XmlSerializer(typeof(T));
                    xs.Serialize(fs, obj);
                    fs.Close();
                    return true;
                }
                catch (Exception e)
                {
                    Console.WriteLine(e);
                    throw;
                }
            }
    
            /// <summary>
            /// 将xml文件进行反序列化
            /// </summary>
            /// <typeparam name="T"></typeparam>
            /// <param name="fileName"></param>
            /// <returns></returns>
            public static T DecodeXML<T>(string fileName)
            {
                var dir = Application.StartupPath;
                fileName = dir + "/" + fileName;
                try
                {
                    if (File.Exists(fileName)==false)
                        return default(T);
                    FileStream fs = new FileStream(fileName, FileMode.Open, FileAccess.Read);
                    XmlSerializer xs = new XmlSerializer(typeof(T));
                    T obj = (T)xs.Deserialize(fs);
                    return obj;
                }catch(Exception ex)
                {
                    Console.WriteLine(ex.Message);
                    throw;
                }
                
            }
        }

     对应的窗体数据类可以定义为:

    [XmlRoot]
        public class WindowsData:PropertyChangedBase
        {
            [XmlElement("WindowsIndex")]
            /// <summary>
            /// Windows窗体索引
            /// </summary>
            public int WindowsIndex{get;set; }
    
            [XmlElement("FontSize")]
            private double fontSize=14;
            /// <summary>
            /// 窗体字体
            /// </summary>
            public double FontSize
            {
                get { return fontSize;}
                set
                {
                    fontSize=value;
                    OnPropertyChanged("FontSize");
                }
            }
    
    
            private Point startUpPosition;
            [XmlElement("LeftTopWinPosition")]
            public Point StartUpPosition
            {
                get { return startUpPosition; }
                set
                {
                    startUpPosition = value;
                   
                    OnPropertyChanged("StartUpPosition");
                }
            }
            
    
            /// <summary>
            /// 窗体宽度
            /// </summary>
            private int windowsWidth;
            public int WindowsWidth
            {
                get { return windowsWidth; }
                set { windowsWidth = value;OnPropertyChanged("WindowsWidth"); }
            }
    
            private int windowsHeight;
            public int WindowsHeight
            {
                get { return windowsHeight; }
                set
                {
                    windowsHeight = value;
                    OnPropertyChanged("WindowsHeight");
                }
            }
    
    
            private string richTextBoxContent;
    
            [XmlElement("UserInputNotes")]
            public string RichTextBoxContent
            {
                get { return richTextBoxContent; }
                set
                {
                    richTextBoxContent = value;
                    OnPropertyChanged("RichTextBoxContent");
                }
            }
            public WindowsData()
            {
    //            MessageBox.Show("新的窗体数据加载了");
                WindowsIndex = GenerateWindowsIndex.Generate();
                WindowsWidth = 350;
                WindowsHeight = 450;
                double screenHeight = SystemParameters.FullPrimaryScreenHeight;
                double screenWidth = SystemParameters.FullPrimaryScreenWidth;
                StartUpPosition =new Point((screenWidth - WindowsWidth)/2,(screenHeight - WindowsHeight)/2);
            }
        }
    https://github.com/li-zheng-hao
  • 相关阅读:
    数据预处理--数据清洗
    数据运营(一)基本讲解概念及运营方式.
    基于skearn-learn 框架 的线性回归
    手写线性回归算法demo
    数据分析算法--线性回归算法讲解(2)
    数据分析算法--线性回归算法讲解
    数据监督与非监督
    numpy的常用函数以及常规操作
    数据分析--基础numpy(一)
    互斥锁,自旋锁,读写锁与原子操作
  • 原文地址:https://www.cnblogs.com/lizhenghao126/p/11053590.html
Copyright © 2011-2022 走看看