匿名类型的实例是否可序列化为会话?

时间:2011-04-05 17:10:33

标签: c# .net

问题

我有一次性使用对象,它是多个对象及其属性的组合。我想将这个匿名类型存储到会话中并再次将其拉回。

需要回答的问题

  1. 这是个坏主意吗?如果是这样,有没有更好的方法? (不创建可序列化的对象并将其存储在会话中)

  2. 还想知道是否可以这样做?

3 个答案:

答案 0 :(得分:6)

是一个坏主意; anon类型在单个位置之外是一个糟糕的选择。有一种叫做“逐个演员”的东西,但这不是好习惯。正确的方法就是“编写一个简单的类来表示该状态”。使用琐碎的自动道具。

动态是另一个可行的选择(可以与匿名类型对话),但是又一次:你在这里尝试保存什么?已经写过POCO / DTO ......在很多情况下甚至不需要Serializable(除非你有一个进程外状态服务器;在这种情况下它是 更多 对于拥有已知的DTO很重要。

答案 1 :(得分:3)

匿名类型旨在在单个方法体中使用。任何时候你开始在方法之间传递它们,你要求一点痛苦。在这一点上,更简单的是继续定义具体类型并使用它。

答案 2 :(得分:1)

如果您想在匿名类型和传统POCO之间找到灵活的中间地带,NameValueCollection可能适合您。