我想序列化一个类的实例到IsolatedStorage.I已经尝试SharpSerialiser
,但它只能序列化公共属性。但我的类有私有成员(没有属性),静态成员等。在DataContractSerializer
也我认为我们可以仅序列化公共成员。是否有任何方法将其序列化?如何序列化包含私有成员的类的实例?
感谢和问候 vaysage
我想序列化一个类的实例到IsolatedStorage.I已经尝试SharpSerialiser
,但它只能序列化公共属性。但我的类有私有成员(没有属性),静态成员等。在DataContractSerializer
也我认为我们可以仅序列化公共成员。是否有任何方法将其序列化?如何序列化包含私有成员的类的实例?
感谢和问候 vaysage
Silverlight有更严厉的反射的安全模型,并且不支持用于绕过这种惯用的招数。 AFAIK,你只限于公众成员。
当然,您可以通过自定义接口和代码生成将对象自动序列化为部分类(以避免手动执行)。
但是,IMO更好的方法是创建一个辅助DTO类模型;这是可变的,并且具有get
和set
的公共属性。大多数序列化程序都会对此感到满意,并且始终可以在DTO模型和主要对象模型之间提供转换运算符。
我的选择是自定义二进制序列化,它确保您只序列化您实际需要的内容,是最快的序列化方法,并且允许您在真正需要时序列化私有成员。凯文马歇尔有一个很好的序列化比较帖子,涵盖了选项,并给出了性能数据:http://blogs.claritycon.com/kevinmarshall/2010/11/03/wp7-serialization-comparison/
非常感谢。该链接帮助我学习了自定义二进制序列化。但是,我只能打勾一个答案。所以我upvoted。 – Vaysage 2011-05-05 08:48:11
通常我们不序列化私有成员。有没有特别的理由要这样做? – ScruffyDuck 2011-05-05 05:50:32