这就是问题所在。我想创建一个包含配置数据的类。该数据由键/值对组成。一些示例:“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,因为我希望使用新的方差特性来解决这个问题,但到目前为止还没有运气。如果需要更多信息,只需命名!谢谢你的帮助!