为什么从Windows Phone中删除了[Serializable]属性?

时间:2014-04-07 23:24:30

标签: c# .net serialization windows-phone windows-store-apps

我正在努力将WinForms类库迁移到Windows Phone,但我遇到了一个似乎有实际效果的变化。

代码按原样运行,只有通用逻辑,但WinForms中的类都归为[Serializable]。但是,Windows Phone或Windows应用商店应用中不存在该属性。有没有理由省略这个? ISerializable接口的情况相同。在MSDN文档底部的列表中,它实际上包括Windows 8和Windows Phone 8。

我不明白为什么这些类型被删除,因为它们既有用又非常通用。

1 个答案:

答案 0 :(得分:4)

你为什么说"删除"?我怀疑它是否曾经存在过。

WinRT和WinRT中有许多不受支持的功能。 Silverlight(WP7 / WP8)堆栈如下: (不确定微软获取这些内容的时间表是什么)

  1. XSD到班级处理
  2. 二进制格式化/序列化等。
  3. Serializable 属性仅用于二进制序列化。 (而不是XmlSerialization等。)因为不支持二进制序列化等,所以您可能看不到WP8库中可用的完整堆栈,包括此属性。

    如果您有序列化需求,请使用 XmlSerialization DataContractSerializer

    如果除了Binary之外什么都不适合你,我认为还有一些第三方库 sharpSerializer (没有使用它)