所以我一直在经历着我们的代码库,我已经看到了一些我们的DTO的有一个混搭[DataMember]和[IgnoreDataMember]属性.
在过去,我们被告知如果我们不想在DTO中序列化某些内容,只需添加[DataMember]属性即可.然后我看到了另一个属性并进行了一些挖掘,似乎这明确表明该属性不会被序列化.
现在我的问题是,哪个更好?添加 [IgnoreDataMember]或不添加任何内容.
我已经四处询问,似乎[IgnoreDataMember]是从所有序列化的日子开始,你必须决定应该忽略什么(我相信.Net 2).然后他们将其更改为反向,您必须明确说明应该序列化的内容.现在看来你可以做到这两点.
Mar*_*ell 53
我已经四处询问,似乎[IgnoreDataMember]来自所有序列化的日子,你必须决定应该忽略什么(我相信.Net 2).然后他们将其更改为反向,您必须明确说明应该序列化的内容.
实际上这并不完全正确; IIRC一直都是:
[DataContract],则仅[DataMember]考虑标记的成员[DataContract],则默认为所有内容,但您可以使用减去成员[IgnoreDataMember]我通常只是省略了[DataMember]我不想序列化的东西,但在很多方面[IgnoreDataMember]更明确 - 主要是为了维护者的利益.它说"我故意没有序列化这个",而不是"也许我知道这不是序列化的,但也许我只是忘了添加属性".
要么工作.