Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ajax/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone 如何序列化对象的两组不同字段_Iphone_Web Services - Fatal编程技术网

Iphone 如何序列化对象的两组不同字段

Iphone 如何序列化对象的两组不同字段,iphone,web-services,Iphone,Web Services,我有一些类需要以两种不同的方式序列化:第一种是“基本”字段,第二种是其他一些字段。 e、 g.一个用户类,我有时需要序列化“first name”和“last name”字段,有时需要序列化“id”和“email” 田野也是如此 到目前为止,我发现最好的方法是用[DataMember]属性标记基本字段,然后让.NET为我和其他人进行序列化 用customize属性标记它们,然后自己进行序列化。 事实证明,该解决方案成本非常高: 我首先对基本属性进行siralize(如前所述,.NET为我做了这件

我有一些类需要以两种不同的方式序列化:第一种是“基本”字段,第二种是其他一些字段。 e、 g.一个用户类,我有时需要序列化“first name”和“last name”字段,有时需要序列化“id”和“email” 田野也是如此

到目前为止,我发现最好的方法是用[DataMember]属性标记基本字段,然后让.NET为我和其他人进行序列化 用customize属性标记它们,然后自己进行序列化。 事实证明,该解决方案成本非常高: 我首先对基本属性进行siralize(如前所述,.NET为我做了这件事) 然后我得到用自定义属性标记的字段的属性名(使用反射名称空间), 然后我尝试从对象中获取这些字段及其值,并将它们的序列化添加到基本序列化中(到目前为止还不是很成功)

问题是: 有更好的办法吗?最好是由哪个.NET为我完成其余的工作,如果不是,至少有一个我不需要经历所有的过程 对象的字段,找到相关字段并自己序列化

谢谢大家。

奥伦

您是否必须每分钟运行这些操作1000倍或更多?否则,除了最笨拙的解决方案之外,其他所有解决方案的成本都不会太高。例如,如果您需要这样做,从两个对象工作可能就可以了。如果你还没有真正进行实时比较,那么你很有可能对什么是昂贵的什么不是错误的

但如果你想这样做,这里有一个解决方案,只需要1%以上的时间

  • 对于子集有一个对象,例如核心,对于整个对象有完整的对象
  • 在Full的构造函数中,实例化Core的私有实例(复合模式排序)。这没有多少开销
  • Full不会为核心成员提供私有成员变量。Full的核心数据的setter和getter将引用core的私有实例。所以没有开销
  • 现在有2个对象要序列化
P.S.我考虑用其余字段创建一个新类。。。但这也是非常昂贵的(每次创建一个新对象通常都非常慢,啊),所以这也不是一个很好的解决方案。答案很好!尽管我们最终决定采用不同的方式(每个方法都有一个自定义对象,因为字段之间存在重叠,而且有些字段甚至应该添加到“完整”对象中)。但是,我还是喜欢你的回答(-: