Jer*_*ter 15 c# entity-framework
我发现[DataContract]和[DataMember]属性有点混乱,宁愿用配置方法中的代码做一些事情.这可能吗?
Lad*_*nka 16
您根本不必使用这些属性.DataContractSerializer将使用getter和setter序列化所有公共属性,但是在序列化具有导航属性的实体的情况下,由于"循环引用",您将很容易以异常结束.
要避免该异常,您必须[DataContract(IsReference = true)]在您的实体类上使用DataMember您想要进行serilize的IgnoreDataMember每个属性,或者在您不想序列化的每个属性上使用.
最后一个也是最复杂的选项是完全避免属性,并实现自定义类IDataContractSurrogate来控制类型之外的序列化.
您还可以编写完全自定义的序列化过程,或使用XML序列化或二进制序列化及其所有要求.