zoukankan      html  css  js  c++  java
  • 读写XML文件的类及注册表操作

    读写系统配置信息在win32下常用注册表,在.net下可以沿用这种方法
    using Microsoft.Win32;
    RegistryKey regKey = Registry.CurrentUser.OpenSubKey(@"SOFTWARE\MICROSOFT\WINDOWS\CURRENTVERSION\RUN",true);
    regKey.SetValue ("AutoSendLogMail", ExefileName); 
    regKey.DeleteValue ("AutoSendLogMail",false);

    但更好的方法是写到XML文件中,优点是修改和移植方便,并且可以将元素和类的属性进行映射,序列化与反序列化;
    于是参考.Text中相关的类写了一个读写XML文件的类
    用于WinForm程序
    using System;
    using System.IO;
    using System.Xml.Serialization;
    using System.Xml;
    using System.Configuration;

    namespace SendLogMail
    {
        
    public abstract class SystemConfiguration
        
    {
            
    public static SystemSettings GetSettings()
            
    {            
                FileStream fs
    =null;
                
    string FileName="";
                SystemSettings data;
                XmlSerializer serializer 
    = new XmlSerializer(typeof(SystemSettings));
                
    try
                
    {
                    FileName 
    = System.Windows.Forms.Application.StartupPath+"\\"+GetSettingsFile();                
                    fs 
    = new FileStream(FileName, FileMode.OpenOrCreate);    
                    data 
    = (SystemSettings)serializer.Deserialize(fs);                                
                }

                
    catch (Exception err)
                
    {
                    System.Windows.Forms .MessageBox.Show (err.Message
    +"系统配置文件出错:\r\n"+FileName);
                    data 
    = new SystemSettings();
                }
        
                
    finally
                
    {
                    
    if (fs!=null{ fs.Close();}                
                }

                
    return data;
            }


            
    public static void SaveSettings(SystemSettings data)
            
    {
                FileStream fs
    =null;
                
    string FileName="";
                XmlSerializer serializer 
    = new XmlSerializer (typeof(SystemSettings));             
                
    try
                
    {
                    FileName  
    = System.Windows.Forms.Application.StartupPath+"\\"+GetSettingsFile();
                    fs 
    = new FileStream(FileName, FileMode.Create);
                    serializer.Serialize(fs, data);
                }

                
    catch (Exception err)
                
    {
                    System.Windows.Forms .MessageBox.Show (err.Message
    +"系统配置文件出错:\r\n"+FileName);                
                }
        
                
    finally
                
    {
                    
    if (fs!=null)
                    
    {
                        fs.Close();  
                    }
                    
                }

            }


            
    private static string GetSettingsFile()
            
    {
                
    return ConfigurationSettings.AppSettings["SystemSettingsFile"];            
            }

        }
        
        
        
    public class SystemSettings
        
    {        
            
    private string _txtSMTPHost;
            
    private string _txtSPSHost;
                    
            [XmlElement]
            
    public string txtSMTPHost
            
    {
                
    get return _txtSMTPHost; }
                
    set { _txtSMTPHost = value; }
            }
            
            [XmlElement]
            
    public string txtSPSHost
            
    {
                
    get return _txtSPSHost; }
                
    set { _txtSPSHost = value; }
            }
  • 相关阅读:
    centos 7修改时间为中国时间
    颜色表及html代码
    前端日志监控体系
    测试开发必备技能:安全测试漏洞靶场实战
    Jmeter(三)----win10系统下如何修改Jmeter字体大小?
    Jmeter(二) ---Jmeter英文版本修改为中文
    Jmeter(一) ---Windows环境搭建
    跟着高手学复盘_初步理解
    小测试对 HTTP/2 的了解
    软件测试入坑建议
  • 原文地址:https://www.cnblogs.com/zyk/p/115016.html
Copyright © 2011-2022 走看看