По поводу ini-файлов. Как-то меня тоже заинтересовал подобный вопрос. За вечерок сел и написал dll-ку, используя стандартные вызовы Win32 API. Например:
[DllImport("kernel32.dll", EntryPoint = "GetPrivateProfileString")]
public static extern int GetPrivateString(string section, string key, string def, StringBuilder buffer, int size, string path);
И через констуктор класса сделал обращения:
private const int SIZE = 1024;
public string Path = String.Empty;
public Ini(string path)
{
this.Path = path;
}
public string GetPrivateString(string section, string key)
{
StringBuilder buffer = new StringBuilder(SIZE);
GetPrivateString(section, key, null, buffer, SIZE, this.Path);
return buffer.ToString();
}
Все работает без сучка и задоринки. Подробности по функциям API смотри в MSDN. Но, действительно, лучше использовать Application Settings. Чем и пользуюсь.