命名空间: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
版权声明:本文为博主原创文章,转载请附上博文链接!

