繁体   English   中英

防止使用datacontractjsonserializer C#序列化一个propery

[英]prevent a propery from being serialized using a datacontractjsonserializer C#

我正在使用.net datacontractjsonserializer将我的对象列表序列化为JSON字符串,但是有些公共属性我不想序列化,如何防止datacontractjsonserializer序列化这些属性?

谢谢

在使用.NET序列化程序进行序列化时,有两种方法:

白名单属性:

这是推荐方法。 使用DataContract属性显式标记您的类。 这样,只有标记有DataMember属性的属性才会包含在输出中。

不要做一个你不想序列化的黑名单列表,最好做一个白名单并标记你想要序列化的所有属性。 这样更安全,因为它要求开发人员在引入新属性时明确声明他们希望序列化属性。

黑名单属性:

如果您确实想要进行黑名单,可以使用其他人指出的IgnoreDataMember属性。 在这种情况下,您不需要(也不应该)使用DataContract属性标记您的类。 而是使用IgnoreDataMember标记要排除的IgnoreDataMember

我希望这有助于解释选择及其优点/缺点。

编辑:扩大了我的答案

我能想到有两种选择。

1-在属性上尝试使用[IgnoreDataMember]属性。

2 - 不要使用[DataMember]属性标记您的属性。

希望能帮助到你

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM