public class BaseSetting
{
private Dictionary<string, int> intValues = null;
private Dictionary<string, string> strValues = null;
private Dictionary<string, bool> boolValues = null;
private Dictionary<string, double> doubleValues = null;
private DataSet ds = null;
private const string intTableName = "IntTable";
private const string stringTableName = "StringTable";
private const string boolTableName = "BoolTable";
private const string doubleTableName = "DoubleTable";
private const string firstFieldName = "ParaName";
private const string secondFieldName = "ParaValue";
public string Name
{
get; set;
}
private string SettingFileName
{
get
{
string fileName = this.GetType().Assembly.Location;
string filePath = Path.GetDirectoryName(fileName);
if (string.Compare(Name, "Settings") == 0)
{
return Path.ChangeExtension(fileName, ".xml");
}
else
{
return Path.Combine(filePath, string.Format("{0}.xml", Name));
}
}
}
public BaseSetting(string name)
{
intValues = new Dictionary<string, int>();
strValues = new Dictionary<string, string>();
boolValues = new Dictionary<string, bool>();
doubleValues = new Dictionary<string, double>();
Name = name;
SetupDataSet();
this.load();
}
public virtual bool Save()
{
return Save(SettingFileName);
}
public virtual bool Save(string filePath)
{
if (!PropertiesToSettings(this, this)) return false;
UpdataToDatabase(true);
try
{
MemoryStream ms = new MemoryStream();
ds.WriteXml(ms, XmlWriteMode.WriteSchema);
FileStream dst = File.Create(GetZipFileName(filePath));
ms.Position = 0;
CompressStream(ms, dst);