如何序列化包含私有成员的类的实例?

时间:2011-05-05 05:42:30

标签: c# silverlight serialization windows-phone-7

我想将一个类的实例序列化为IsolatedStorage。我已尝试SharpSerialiser,但它只能序列化公共属性。但我的类有私有成员(没有属性),静态成员等.In { {1}}我认为我们只能序列化公众成员。那么有什么方法可以序列化吗?

谢谢和问候 vaysage

2 个答案:

答案 0 :(得分:6)

Silverlight具有更严格的反射安全模型,并且不支持用于绕过此的常用技巧。 AFAIK,您仅限于公开会员。

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

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

答案 1 :(得分:6)

我的首选是自定义二进制序列化,它确保您只序列化实际需要的内容,是最快的序列化方法,并且如果您确实需要,还可以序列化私有成员。 Kevin Marshall有一个很好的序列化比较帖子,它涵盖了选项并提供了性能数据:http://blogs.claritycon.com/kevinmarshall/2010/11/03/wp7-serialization-comparison/