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

use*_*572 2 .net c# datacontractjsonserializer

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

谢谢

aKz*_*enT 6

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

白名单属性:

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

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

黑名单属性:

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

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

编辑:扩大了我的答案