我有一些类需要以两种不同的方式序列化:第一个 - “基本”字段,第二个 - 其他一些字段。 例如我有时需要序列化“名字”和“姓氏”字段的用户类,有时我需要序列化“id”和“email” 领域也是如此。
到目前为止,我发现这样做的最好方法是使用[DataMember]属性标记基本字段,让.NET为我进行序列化,其余的 用自定义属性标记它们并自己进行序列化。 这个解决方案证明是非常昂贵的: 我首先讨论基本属性(如上所述,.NET为我做了这个) 然后我得到标有自定义属性的字段的属性名称(使用反射命名空间), 然后我尝试从对象中获取这些字段及其值,并将它们的序列化添加到基本序列化中(到目前为止还不是很成功).....
问题是: 有没有更好的办法?最好是.NET将为我做剩下的工作,如果没有,至少有一个我不需要通过所有的工作 对象的字段,找到相关的字段并自己序列化..
谢谢大家..
答案 0 :(得分:1)
奥伦
您是否必须每分钟运行1000x或更多这些操作?如果没有,除了最笨拙的解决方案之外的所有解决方案都不会太昂贵。例如,如果你需要像这样做,从2个对象工作可能就好了。 如果你实际上没有进行真正的时间比较,那么你很可能错误的是什么是昂贵的,什么不是。
但是如果你想这样做的话,这里的解决方案只需要1%的时间。