为什么SerializableAttribute不包含在FCL的Silverlight版本中?

时间:2011-04-18 09:21:46

标签: .net silverlight serialization serializable fcl

为什么SerializableAttribute不包含在FCL的Silverlight版本中?

而且,BinaryFormatter也不存在。

我不是在寻找替代解决方案,我只是对这个事实感到好奇。

二进制序列化是否从根本上违背了Silverlight的一些设计规则?

1 个答案:

答案 0 :(得分:1)

首先,Silverlight有不同的权限规则 - 在私有领域更难获得。当然,对于FCL设计人员来说,我认为这不会是一个问题 - 他们可以将其编码到运行时(但重新创建一种可能的方法来踩踏沙箱)。

也许 biggie 是Silverlight不需要(或不想)支持“远程处理”,这是它必须存在于主.NET BCL中的主要原因。当然,远程处理通常通常,但需要在核心.NET中才能向后兼容。

第三个原因很可能是BinaryFormatter的本质; SL中的许多类在SL运行时内具有不同的实现,以考虑不同的功能和可用的类型/安全性等。这使得它几乎不可能与核心.NET运行时线兼容。因此,您将无法与服务器代码共享它。

总的来说,切割它是非常有意义的。对于app< ===>服务器,存在基于合同的序列化程序;和其他(我敢说:更好)二进制序列化器可以避免所有这些问题(即完全可移植)。