タイプも保持する動的な ConfigurationSection を作成する必要があります
-
02-07-2019 - |
質問
キーと値のペアを app.config ファイルに保存できる構成セクションを作成する必要があります。キーと値のペアは、タイプに関係なくランタイムに追加できます。値が元の型を維持することも重要です。次のインターフェースを拡張する必要があります
public interface IPreferencesBackend
{
bool TryGet<T>(string key, out T value);
bool TrySet<T>(string key, T value);
}
実行時に次のように言えます。
My.Foo.Data data = new My.Foo.Data("blabla");
Pref pref = new Preferences();
pref.TrySet("foo.data", data);
pref.Save();
My.Foo.Data date = new My.Foo.Data();
pref.TryGet("foo.data", out data);
System.Configuration.Configuration.AppSettings を試してみましたが、キーと値のペアを文字列配列に格納しているという問題がありました。
必要なのは、個々の設定をシリアル化する方法を制御できる System.Configuration.ConfigurationSection の実装です。Visual Studio によって生成された設定がこれを行うことに気付きました。すべての設定キーの作成にはリフレクションを使用しています。私に必要なのは、このランタイムを動的に実行することです。
[System.Configuration.UserScopedSettingAttribute()]
[System.Diagnostics.DebuggerNonUserCodeAttribute()]
[System.Configuration.DefaultSettingValueAttribute("2008-09-24")]
public global::System.DateTime DateTime {
get {
return ((global::System.DateTime)(this["DateTime"]));
}
set {
this["DateTime"] = value;
}
}
解決 2
codeproject.com で、これらの問題を詳細に説明している 2 つの素晴らしい記事を見つけました。
.NET 2.0構成の謎を解明するhttp://www.codeproject.com/KB/dotnet/mysteriesofconfiguration.aspx
他のヒント
Phil Haack が素晴らしい記事を書いています カスタム構成セクションの作成
ASCII テキスト ファイルで取得できるのは文字列だけです。:-)
ただし、「値」文字列をエンコードして、次のような型パラメータを含めることができます。
<key="myParam" value="type, value" />
例えば:
<key="payRate" value="money,85.79"/>
次に、アプリに変換を実行させます...
所属していません StackOverflow