一、调用动态库
private string fileName;
[DllImport("kernel32")]
private static extern int GetPrivateProfileInt(
string lpAppName,
string lpKeyName,
int nDefault,
string lpFileName
);
[DllImport("kernel32")]
private static extern int GetPrivateProfileString(
string lpAppName,
string lpKeyName,
string lpDefault,
StringBuilder lpReturnedString,
int nSize,
string lpFileName
);
[DllImport("kernel32")]
private static extern bool WritePrivateProfileString(
string lpAppName,
string lpKeyName,
string lpString,
string lpFileName
);
public IniUtil(string filename)
{
fileName = filename;
}
二、接口实现
public int getInt(string section, string key, int def)
{
return GetPrivateProfileInt(section, key, def, fileName);
}
public int getUint(string section, string key, int def)
{
return GetPrivateProfileInt(section, key, def, fileName);
}
public string getString(string section, string key, string def)
{
string result = string.Empty;
try
{
StringBuilder temp = new StringBuilder(1024);
GetPrivateProfileString(section, key, def, temp, 1024, fileName);
if (temp.ToString().ToLower()!="null")
{
result = temp.ToString();
}
else
{
result = null;
}
}
catch (System.Exception ex)
{
LoggerUtil.Error("IniUtil:getString", ex);
result = null;
}
return result;
}
public void writeInt(string section, string key, int iVal)
{
WritePrivateProfileString(section, key, iVal.ToString(), fileName);
}
public void writeString(string section, string key, string strVal)
{
WritePrivateProfileString(section, key, strVal, fileName);
}
public void delKey(string section, string key)
{
WritePrivateProfileString(section, key, null, fileName);
}
public void delSection(string section)
{
WritePrivateProfileString(section, null, null, fileName);
}
三、调用方式
private static readonly IniUtil iniUtil = new IniUtil(Directory.GetCurrentDirectory() + "\\config.ini");
iniUtil.getInt("SystemSetting", "TimeoutDuration", 0)