これが問題です。構成データを含むクラスを作成したいと思います。このデータは、キーと値のペアで構成されます。いくつかの例: "hostName"="localhost"、"timeout"=1000 など。最初のアイデアは、これらすべてを一般的な辞書に格納することでした。
private Dictionary<string, ConfigurationItem<object>> Configuration =
new Dictionary<string, ConfigurationItem<object>>();
ConfigurationItem クラスは次のようになります。
public class ConfigurationItem<T>
{
public string Name { get; set; }
public T Value { get; set; }
}
私の希望は、次のように構成を照会して設定できることです。
int i = Configuration.Get<int>("Timeout");
Configuration.Set("Timeout", 1000);
残念ながら、次のコードを使用して構成辞書に項目を挿入することはできません。
public void SetValue<T>(string key, ConfigurationItem<T> value)
{
if (Configuration.ContainsKey(key.ToUpper()))
Configuration[key.ToUpper()] = **value**;
else
Configuration.Add(key.ToUpper(), **value**);
}
太字の部分はエラーを示しています。
タイプ ConfigurationItem<T> を ConfigurationItem<Object> に変換できません
新しいバリアンス機能を使用してこの問題を修正したかったので、C# 4.0 を使用していますが、今のところうまくいきません。さらに情報が必要な場合は、名前を付けてください。ご協力いただきありがとうございます!