我正在使用.net datacontractjsonserializer将我的对象列表序列化为JSON字符串,但是有些公共属性我不想序列化,如何阻止datacontractjsonserializer序列化这些属性?
由于
答案 0 :(得分:6)
使用.NET序列化程序进行序列化有两种方法:
属性的白名单
这是推荐方法。您使用DataContract
属性明确标记您的班级。这样,只有标有DataMember
属性的属性才会包含在输出中。
不是做一个你不想序列化的黑名单列表,而是做一个白名单并标记你想要序列化的所有属性。这样更安全,因为它要求开发人员在引入新属性时明确声明他们希望序列化属性。
黑名单属性:
如果您确实想要进行黑名单,可以使用其他人指出的IgnoreDataMember
属性。在这种情况下,您不需要(也不应该)使用DataContract
属性标记您的类。而是使用IgnoreDataMember
标记要排除的属性。
我希望这有助于解释选择及其优缺点。
编辑:扩大了我的答案
答案 1 :(得分:2)
我能想到两种选择。
1-在属性上尝试使用[IgnoreDataMember]属性。
2 - 不要使用[DataMember]属性标记您的属性。
希望有所帮助