【问题标题】:Key Value Pair Collection, where the values can be of multiple types?键值对集合,哪里的值可以是多种类型?
【发布时间】:2017-04-20 04:41:35
【问题描述】:

Tl;dr 我想建立一个键值对的集合,其中的值可以是多种类型,但也可以用ISerializable 序列化。这可能吗?如果可以,我该如何实现?

我正在尝试替换现有系统中的代码,其中Hashtables 存储在Session 变量中,允许开发人员根据指定的键在其中存储多种类型的对象。我正在尝试转换系统,以便它可以使用SqlServer SessionState(将Session 数据存储在数据库中,而不是内存中),这要求添加到Session 对象的所有内容都是ISerializable

希望这可以使用我自己的通用数据类以某种方式实现,该数据类包装了集合中多种类型的对象?我只是不太明白怎么做(我使用了很多通用集合,只是从未设置过我自己的通用类,所以我很难知道该怎么做)。

在此先感谢您就可能的方法提供任何建议。

【问题讨论】:

  • 简单的Dictionary<int, ISerializable>有什么问题?

标签: asp.net .net generics serialization collections


【解决方案1】:

基本上,您需要Dictionary<TKey, TValue>,其中 TValue 必须实现 ISerializable。由于 Dictionary 具有您需要的所有实现,并且仅对 TValue 类型过于宽容,因此创建继承 Dictionary 并添加通用约束的类就足够了:

class DictionaryOfSerializables<TKey, TValue> : Dictionary<TKey, TValue> where TValue : ISerializable
{ }

【讨论】:

  • Shadow 先生的迟来感谢您的意见,我无法继续这项工作,但我保证我会回来整理这个问题!
猜你喜欢
  • 1970-01-01
  • 2012-08-17
  • 1970-01-01
  • 2018-09-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-09-17
  • 1970-01-01
相关资源
最近更新 更多