最近需要做一个配置程序,主要给其他程序做相关配置的小工具。
配置项蛮多的,一般我们都是将各个配置项写到配置文件的节点中,比如App.config文件或者自定义的xml文件。
因为我用的是wpf,MVVM,所以其实界面上的所有数据我都存着ViewModel的实体属性中。比如我们新建一个Model,叫SettingModel,界面上不管做任何更改,其实数据都和SettingModel中一样。
我们将这个SettingModel的内存数据序列化到本地文件。等下次运行程序时,再去反序列化将SettingModel的数据加载到ViewModel中。
public class SettingModel:ObservableObject { private string _FConnStr; public string FConnStr { get { return _FConnStr; } set { _FConnStr = value; RaisePropertyChanged("FConnStr"); } } private string _DBType; public string DBType { get { return _DBType; } set { _DBType = value; RaisePropertyChanged("DBType"); } } private string _SupplierName; public string SupplierName { get { return _SupplierName; } set { _SupplierName = value; RaisePropertyChanged("SupplierName"); } } private string _SupplierNo; public string SupplierNo { get { return _SupplierNo; } set { _SupplierNo = value; RaisePropertyChanged("SupplierNo"); } } private List<ComboxModel> _SQLList; public List<ComboxModel> SQLList { get { return _SQLList; } set { _SQLList = value; RaisePropertyChanged("SQLList"); } } private string _StartTime; public string StartTime { get { return _StartTime; } set { _StartTime = value; RaisePropertyChanged("StartTime"); } } private string _EndTime; public string EndTime { get { return _EndTime; } set { _EndTime = value; RaisePropertyChanged("EndTime"); } } private int _Rate; public int Rate { get { return _Rate; } set { _Rate = value; RaisePropertyChanged("Rate"); } } private DateTime _TransmissionDate; public DateTime TransmissionDate { get { return _TransmissionDate; } set { _TransmissionDate = value; RaisePropertyChanged("TransmissionDate"); } } private string _ServiceAddress; public string ServiceAddress { get { return _ServiceAddress; } set { _ServiceAddress = value; RaisePropertyChanged("ServiceAddress"); } } }