程序经常需要存储一些简单的配置,就像 Android 的 SharedPreferences,winform可以这样子实现
[DllImport("Kernel32.dll")]
public static extern int GetPrivateProfileString(
[MarshalAs(UnmanagedType.LPStr)] string lpAppName,
[MarshalAs(UnmanagedType.LPStr)] string lpKeyName,
[MarshalAs(UnmanagedType.LPStr)] string lpDefault,
StringBuilder lpReturnedString,
int nSize,
[MarshalAs(UnmanagedType.LPStr)] string lpFileName
);
[DllImport("Kernel32.dll")]
public static extern int WritePrivateProfileString(
[MarshalAs(UnmanagedType.LPStr)] string lpAppName,
[MarshalAs(UnmanagedType.LPStr)] string lpKeyName,
[MarshalAs(UnmanagedType.LPStr)] string lpString,
[MarshalAs(UnmanagedType.LPStr)] string lpFileName
);
private const string lpFileName = "MyApp.ini";
private const string lpAppName = "MyApp";
public static void PutString(string key, string value)
{
//Console.WriteLine($"SpUtil#PutString() - {key}={value}");
string path = Environment.CurrentDirectory + $@"\{lpFileName}";
WritePrivateProfileString(lpAppName, key, value, path);
}
public static string GetString(string key, string defValue)
{
string path = Environment.CurrentDirectory + $@"\{lpFileName}";
StringBuilder sb = new StringBuilder(128);
GetPrivateProfileString(lpAppName, key, defValue, sb, 128, path);
return sb.ToString();
}