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

标签 c# entity-framework

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

最佳答案

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

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

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

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

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

相关文章:

C#:如何确定接口(interface)变量的类型?

c# - 是否可以从 CakeBuild 创建和 checkout 新的 git 分支?

c# - 如何将包含字符串的 jQuery 对象绑定(bind)到 List<string>?

c# - 您可以在 EF 中对映射到存储过程的实体执行实体继承吗?

entity-framework - 针对复杂类型属性的 Entity Framework 查询

c# - datagridview 绑定(bind)到实体不更新数据库

c# - 将 Windows 窗体表单的元素重置为初始化状态 (C#/.NET)

C# 我第一次使用 GetRequestStream() 需要 20 秒

entity-framework - DDD : Adding entity to repository and handlig exceptions

entity-framework - Entity Framework 继承 : TPT, TPH 还是没有?