我使用.net datacontractjsonserializer将我的对象列表序列化为JSON字符串,但有一些公共属性,我不想序列化,如何防止datacontractjsonserializer从序列化这些属性?防止序列化使用datacontractjsonserializer C#
感谢
我使用.net datacontractjsonserializer将我的对象列表序列化为JSON字符串,但有一些公共属性,我不想序列化,如何防止datacontractjsonserializer从序列化这些属性?防止序列化使用datacontractjsonserializer C#
感谢
有两种方法,当谈到与.NET串行序列化:性能
白名单:
这是recommenden方法。你用DataContract
属性明确地标记你的班级。由此,只有被标记与DataMember
属性的属性将被包含在输出中。
而不是做你不想序列化属性的黑名单,这是更好地做一个白名单和标记你想被序列化的所有属性。这更安全,因为它要求开发人员在引入新属性时明确声明他们希望将属性序列化。性能
黑色上市:
如果你真的想要做的黑名单,你可以使用IgnoreDataMember
属性为别人指出。在这种情况下,您不需要(也不应该)用DataContract
属性标记您的班级。而是用IgnoreDataMember
标记要排除的属性。
我希望这有助于有点解释的选择和自己的优势/劣势。
编辑:扩展我的回答
有两种选择,我能想到的。
1-使用[IgnoreDataMember]属性属性尝试。
2 - 不要用标记[数据成员]属性你的财产。
希望它有帮助