命名空间:netMarketing.automation.baseClass.ConfigClass.Config
功能:以XML方式保存程序配置文件
版本要求: netMarketingv1.3.1
功能详细说明:
这个类是勇哥的同事写的一个类,比较好用,特收录进netMarketing中。
这个类使用的时候只需要做两件事:
(1)创建一个类,用来声明要保存配置文件的项目
(2)在你的调试面板中放入一个propertyGrid控件,用来显示与编辑参数
然后你就可以new一个本类的实例,调用它的load, save方法读写配置文件了。
这个类默认是在程序的bin目录下的config目录下创建配置文件Config.xml。但是你也可以在调用load, save方法时修改目录位置与配置文件名字。
常用函数列表:
/// <summary> /// 保存配置文件 /// </summary> /// <param name="obj">配置文件项目的类</param> /// <param name="path">配置文件的目录</param> /// <param name="fname">配置文件的名字</param> /// <returns></returns> public bool Save(object obj, string path = "", string fname = "") /// <summary> /// 载入配置文件 /// </summary> /// <param name="obj">配置文件项目的类</param> /// <param name="path">配置文件的目录</param> /// <param name="fname">配置文件的名字</param> /// <returns></returns> public bool Load(object obj,string path="",string fname="")
参考例子:
public partial class Form1 : Form { private settingClass set = new settingClass(); private static Config config=new Config(); public Form1() { InitializeComponent(); config.Load(this.set); } private void Form1_Load(object sender, EventArgs e) { updateProperty(); var s1= set.Product_Limit_Length1Min; } private void updateProperty() { propertyGrid1.SelectedObject = this.set; propertyGrid1.CollapseAllGridItems(); } private void button4_Click(object sender, EventArgs e) { config.Load(this.set); updateProperty(); } private void button5_Click(object sender, EventArgs e) { config.Save(this.set); var s1 = set.Product_Limit_Length1Min; } } public class settingClass { #region Product设置 [Category("Product设置"), DisplayName("01_数据存储目录"), Description("即存放的目录位置")] [DefaultValue("E:\\Data"), Editor(typeof(System.Windows.Forms.Design.FolderNameEditor), typeof(System.Drawing.Design.UITypeEditor))] public string Product_DataFolder { get; set; } [Category("Product设置"), DisplayName("厚度上限"), Description("厚度上限")] [DefaultValue(0.15)] public double Product_Limit_ThicknessMax { get; set; } [Category("Product设置"), DisplayName("厚度下限"), Description("厚度下限")] [DefaultValue(0.05)] public double Product_Limit_ThicknessMin { get; set; } [Category("Product设置"), DisplayName("04_长度1上限")] [DefaultValue(11.0D)] public double Product_Limit_Length1Max { get; set; } [Category("Product设置"), DisplayName("05_长度1下限")] [DefaultValue(9.0D)] public double Product_Limit_Length1Min { get; set; } [Category("Product设置"), DisplayName("06_长度2上限")] [DefaultValue(11.0)] public double Product_Limit_Length2Max { get; set; } [Category("Product设置"), DisplayName("07_长度2下限")] [DefaultValue(9.0)] public double Product_Limit_Length2Min { get; set; } [Category("Product设置"), DisplayName("08_长度3上限")] [DefaultValue(11.0)] public double Product_Limit_Length3Max { get; set; } [Category("Product设置"), DisplayName("09_长度3下限")] [DefaultValue(9.0)] public double Product_Limit_Length3Min { get; set; } [Category("Product设置"), DisplayName("10_长度4上限")] [DefaultValue(11.0)] public double Product_Limit_Length4Max { get; set; } [Category("Product设置"), DisplayName("11_长度4下限")] [DefaultValue(9.0)] public double Product_Limit_Length4Min { get; set; } [Category("Product设置"), DisplayName("12_长度5上限")] [DefaultValue(11.0)] public double Product_Limit_Length5Max { get; set; } [Category("Product设置"), DisplayName("13_长度5下限")] [DefaultValue(9.0)] public double Product_Limit_Length5Min { get; set; } [Category("Product设置"), DisplayName("14_长度6上限")] [DefaultValue(11.0)] public double Product_Limit_Length6Max { get; set; } [Category("Product设置"), DisplayName("55_长度6下限")] [DefaultValue(9.0)] public double Product_Limit_Length6Min { get; set; } #endregion }
在上面的代码中:
DefaultValue中的内容务必按数据类型指定, 如是string,则为“”,如是double,可以设置为不带引号的 数字+尾缀D
请不要乱填DefaultValue,会造成读配置文件失败。
另外,你还需要在自己软件的面板中,加入propertyGrid控件,用来读写编辑配置文件。
---------------------
作者:hackpig
来源:www.skcircle.com
版权声明:本文为博主原创文章,转载请附上博文链接!

