当前位置: 首页 > 编程语言 > C#

以编程方式设置属性以从序列化中排除分享

时间:2023-04-10 17:06:21 C#

以编程方式设置属性以从序列化中排除示例:我相信这里有三个选项:使用XmlIgnore属性。缺点是您需要提前知道xmlserializer将忽略哪些属性。实现IXmlSerializable接口。这使您可以完全控制XML输出,但您需要自己实现读/写方法。实现ICustomTypeDescriptor接口。我相信无论您选择哪种类型的序列化,这都会使您的解决方案有效,但这可能是最长的解决方案。这取决于序列化类型。下面是使用BinaryFormatter执行此操作的完整示例:您可以使用OnDeserializedAttribute:}privateintRetrievId(){}[非序列化]privateintid;还有另一种使用IDeserializationCallback执行此操作的方法:}privateintRetrievId(){}[非序列化]privateintid;您还可以阅读JeffreyRichter关于序列化的文章:第1部分和第2部分。如果你想序列化为XML,你可以像这样使用XMLIgnore:classSomeClass{[XmlIgnore]intsomeID;公共字符串someString;如果您想在序列化期间包含该字段但在反序列化期间忽略它,您可以使用OnDeserializedAttribute运行方法来设置ID字段的默认值。一个旧帖子,但我发现ShouldSerialize模式http://msdn.microsoft.com/en-us/library/53b8022e%28VS.71%29.aspx这真的很有帮助!如果您正在使用XML序列化,请使用[XmlIgnore]属性。否则,如何忽略特定属性由序列化程序本身定义。NonSerializedAttribute属性。http://msdn.microsoft.com/en-us/library/system.nonserializedattribute.aspx以上是C#学习教程:编程设置要排除序列化的属性分享所有内容,如果对大家有用和需要了解更多C#学习教程,希望大家多多关注~本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处: