現在のプロジェクトでもまったく同じ問題が発生しました。私の最初の衝動は、構成を sqlite のキーと値のテーブルに配置することでしたが、内部の顧客は、構成ファイルの主な理由を思い出させてくれました。
代わりに、XML ファイルを作成してそこに置きます。
string documentsPath = Environment.GetFolderPath(Environment.SpecialFolder.Personal);
そして、これらのプロパティを使用してアクセスします。
public string this[string key]
{
get
{
var document = XDocument.Load(ConfigurationFilePath);
var values = from n in document.Root.Elements()
where n.Name == key
select n.Value;
if(values.Any())
{
return values.First();
}
return null;
}
set
{
var document = XDocument.Load(ConfigurationFilePath);
var values = from n in document.Root.Elements()
where n.Name == key
select n;
if(values.Any())
{
values.First().Value = value;
}
else
{
document.Root.Add(new XElement(key, value));
}
document.Save(ConfigurationFilePath);
}
}
}
シングルトン クラスを介してConfigurationを呼び出すため、.NET 開発者にとっては app.config ファイルを使用するのと非常によく似ています。最も効率的なソリューションではないかもしれませんが、仕事は完了します。