Tl; dr我想设置一组键值对,其中值可以是多种类型,但也可以使用ISerializable
进行序列化。这是可能的,如果可以的话,我该如何实现呢?
我正在尝试替换现有系统中的代码,其中Hashtables
存储在Session
变量中,允许开发人员根据指定的密钥存储多种类型的对象。我正在尝试转换系统,以便它可以使用SqlServer SessionState
(将Session
数据存储在数据库中,而不是存储在内存中),这需要添加到Session
对象的所有内容{ {1}}。
希望这可以通过我自己的Generic数据类以某种方式实现,该类包装了集合中多种类型的对象?我只是不太明白(我已经使用了很多Generic集合,从来没有设置我自己的泛型类,所以我很难看到我是怎么做的。)
非常感谢,提出任何有关可行方法的建议。
答案 0 :(得分:0)
基本上,您需要Dictionary<TKey, TValue>
,其中TValue必须实现ISerializable。由于Dictionary具有您需要的所有实现,并且只对TValue类型过于宽松,因此创建继承Dictionary并添加泛型约束的类就足够了:
class DictionaryOfSerializables<TKey, TValue> : Dictionary<TKey, TValue> where TValue : ISerializable
{ }