当前位置:  开发笔记 > Android > 正文

序列化如何在.Net中运行

如何解决《序列化如何在.Net中运行》经验,为你挑选了1个好方法。

我觉得这是一个转贴,但我似乎无法找到任何关于它的好信息.我只是想知道序列化实际上是如何工作的(实际上是反序列化).我想知道的是,如果说我有一个实际上没有私人领域支持的财产; 即:

public string SomeProp {
   get {
      return GetValue("SomePropKey");
   }
   set{
      SetValue("SomePropKey", value);
   }
}

当我反序列化时,setter会被调用吗?getter在序列化时被调用,因为当我序列化对象时,正确的值被写入输出流.我知道这似乎是一种奇怪的情况,但究竟发生了什么?或者我只是让这复杂化....



1> casperOne..:

它完全取决于您用于序列化的机制.

如果您正在使用XmlSerialization,那么是的,调用setter.

如果您正在使用数据协定序列化(DataContractSerialization),那么如果您将DataMember属性应用于属性(而不是其支持字段),则将调用getter/setter.

如果您在.NET中使用原始序列化机制(IFormatter实现),那么这种情况是不可能的,因为它只会序列化存储在字段中的值.

推荐阅读
牛尾巴2010
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有