C# 读写ini配置文件(.net/SQL技术交流群206656202 入群需注明博客园)

using System;
using System.IO;
using System.Reflection;
using System.Runtime.InteropServices;
using System.Text;
namespace Souxuexiao.Cache
{

public static class IniConfig
{
static string ConfigurationFilePath;

static IniConfig()
{
var Ass = Assembly.GetExecutingAssembly();
ConfigurationFilePath = Ass.CodeBase.Replace(System.IO.Path.GetExtension(Ass.CodeBase), ".ini").Replace(@"file:///", "");
}

public static string host
{
get
{
return Convert.ToString(GetValue("host", "127.0.0.1:5556"));
}
set
{
SetValue("host", value);
}
}
public static string slave
{
get
{
return Convert.ToString(GetValue("slave", "127.0.0.1:5556"));
}
set
{
SetValue("slave", value);
}
}

public static int WritePoolSize
{
get
{
return Convert.ToInt32(GetValue("WritePoolSize", "10"));
}
set
{
SetValue("WritePoolSize", value);
}
}
public static int ReadPoolSize
{
get
{
return Convert.ToInt32(GetValue("ReadPoolSize", "10"));
}
set
{
SetValue("ReadPoolSize", value);
}
}

static void SetValue(string keyName, object value)
{
NativeMethods.WritePrivateProfileString("redis", keyName, value.ToString(), ConfigurationFilePath);
}

static object GetValue(string keyName, object defaultValue)
{
StringBuilder retVal = new StringBuilder(1024);
int i= NativeMethods.GetPrivateProfileString("redis", keyName, defaultValue.ToString(), retVal, 1024, ConfigurationFilePath);
return retVal.ToString();
}
}

class NativeMethods
{
[DllImport("kernel32")]
internal static extern long WritePrivateProfileString(
string appName,
string keyName,
string value,
string fileName);

[DllImport("kernel32")]
internal static extern int GetPrivateProfileString(
string appName,
string keyName,
string _default,
StringBuilder returnedValue,
int size,
string fileName);

}

}

原文地址:https://www.cnblogs.com/GodIsBoy/p/3724036.html