2011-05-05 49 views
5

我想序列化一个类的实例到IsolatedStorage.I已经尝试SharpSerialiser,但它只能序列化公共属性。但我的类有私有成员(没有属性),静态成员等。在DataContractSerializer也我认为我们可以仅序列化公共成员。是否有任何方法将其序列化?如何序列化包含私有成员的类的实例?

感谢和问候 vaysage

+0

通常我们不序列化私有成员。有没有特别的理由要这样做? – ScruffyDuck 2011-05-05 05:50:32

回答

6

Silverlight有更严厉的反射的安全模型,并且不支持用于绕过这种惯用的招数。 AFAIK,你只限于公众成员。

当然,您可以通过自定义接口和代码生成将对象自动序列化为部分类(以避免手动执行)。

但是,IMO更好的方法是创建一个辅助DTO类模型;这是可变的,并且具有getset的公共属性。大多数序列化程序都会对此感到满意,并且始终可以在DTO模型和主要对象模型之间提供转换运算符。

6

我的选择是自定义二进制序列化,它确保您只序列化您实际需要的内容,是最快的序列化方法,并且允许您在真正需要时序列化私有成员。凯文马歇尔有一个很好的序列化比较帖子,涵盖了选项,并给出了性能数据:http://blogs.claritycon.com/kevinmarshall/2010/11/03/wp7-serialization-comparison/

+0

非常感谢。该链接帮助我学习了自定义二进制序列化。但是,我只能打勾一个答案。所以我upvoted。 – Vaysage 2011-05-05 08:48:11