我在我的应用程序中创建一个Settings对象,用于存储用户定义的设置和whatnot。我打算使用各种数据类型来设置我的设置字段(int,字符串,枚举,真正的Serializable)。“存储”一个类型参数供以后在C#中使用?
如果可能的话,我还想用类型安全的方法来设置任何设置。我提出的方法会做这样的事情:
Tuple<string, Type> SettingName = new Tuple<string, Type>("NumberOfFoos",
typeof(**TYPE**));
public void Set(Tuple<string, Type> key, **TYPE** value) { /* Stuff */ }
元组将有效地将其“设置”,用户将推动一个值,而将包括该设置的键以及类型该设置。我想知道的是,如果有什么办法让编译器强制执行,在Set()
方法中,value
的类型与保存在传递给Set()
的元组中的类型对象类型相同?我提出的方式甚至可能吗?谢谢!
编辑:我想到了更多的东西,我应该澄清。
1)这是一个静态类,所以我不能序列化整个类,只有它的成员。因此,我真的很想不必为每个字段处理序列化。我打算将所有设置值存储在Dictionary<string, **TYPE**>
中并对其进行序列化。
2)Tuple
定义意味着是恒定的和静态的。我真的把它们视为更多的typedef类型的东西(我真的应该做我自己的SettingKey结构),用户传递到Set
表明他们正在改变的领域。 Type参数是为了强制value
参数是指定的类型。
其实,这样做的结果很好,谢谢! – 2010-09-09 18:48:45