gpt4 book ai didi

c# - 设置没有所有属性的 DataContract 和 DataMember

转载 作者:可可西里 更新时间:2023-11-01 07:45:43 25 4
gpt4 key购买 nike

我发现 [DataContract][DataMember] 属性有点乱,我宁愿用配置方法或其他东西中的代码来做这件事。这可能吗?

最佳答案

您根本不必使用这些属性。 DataContractSerializer 将使用 getter 和 setter 序列化所有公共(public)属性,但在序列化具有导航属性的实体的情况下,由于“循环引用”,您很容易以异常结束。

为避免该异常,您必须在您的实体类上使用 [DataContract(IsReference = true)] 并在每个要序列化的属性上使用 DataMember在您不想序列化的每个属性上忽略数据成员

最后也是最复杂的选择是完全避免属性和自定义类实现 IDataContractSurrogate 以控制类型之外的序列化。

您还可以编写完全自定义的序列化过程或使用 XML 序列化或二进制序列化及其所有要求。

关于c# - 设置没有所有属性的 DataContract 和 DataMember,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7264748/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com