我發現[DataContract]
和[DataMember]
屬性有點麻煩,寧願在配置方法或代碼中使用代碼。這可能嗎?設置DataContract和DataMember不具備所有屬性
回答
根本不需要使用這些屬性。 DataContractSerializer
將使用getter和setter序列化所有公共屬性,但在序列化具有導航屬性的實體的情況下,由於「循環引用」,您將很容易以異常結束。
爲了避免這種情況的例外您必須對您的實體類上要serilize或IgnoreDataMember
你不想序列化的每個屬性的每個屬性使用[DataContract(IsReference = true)]
與DataMember
。
最後一個也是最複雜的選項是完全避免屬性,而自定義類實現IDataContractSurrogate
來控制類型之外的序列化。
您還可以編寫完全自定義的序列化過程,或使用XML序列化或二進制序列化及其所有要求。
但是我在我的類中添加了[DataContract],並且我可以從WCF操作中返回它...但內容是空白的,所以我將[DataMember]添加到幾個屬性中,並且突然那些(並且只有那些)是在序列化結果中返回。那麼,爲什麼我的工作不如你說默認所有屬性被返回? –
順便說一下,它們是{get;設置;} –
一旦添加了'DataContract'屬性,**必須**用'DataMember'屬性標記要序列化的屬性。我描述的默認序列化只有在您根本不使用'DataContract'屬性的情況下才有效。 –
不,DataContractSerializer是一個可選的串行器 - 你必須告訴它你想包括什麼。
與其他序列化程序一樣,您需要使用諸如NonSerializedAttribute或XmlIgnoreAttribute之類的東西來告訴序列化程序將事情放在一邊。
- 1. DBContext模板的DataMember和DataContract屬性
- 2. WCF和[DATACONTRACT] + [DATAMEMBER]
- 3. 無DataMember的DataContract序列化屬性
- 4. WCF REST:ReadAsDataContract使用類「沒有」裝修屬性DataContract和DataMember
- 5. 添加DataMember和DataContract onbuild
- 6. 如何設置斷點爲[DataMember]屬性
- 7. 設置WCF DataMember屬性的默認值
- 8. WCF DataContract DataMember順序?
- 9. DataContract,默認DataMember值
- 10. 在使用Asp.net Web API時使用DataContract和DataMember屬性有什麼好處嗎?
- 11. 向所有類中添加[DataContract]和[DataMember]是否會影響性能
- 12. 如何檢測DOM準備和所有屬性設置
- 13. 在實體框架POCO模板中添加[DataMember] [DataContract]屬性
- 14. 爲什麼.aspx頁面中的WebMethod忽略DataContract - DataMember屬性
- 15. 帶有抽象DataMember數組的WCF DataContract
- 16. 爲什麼某些DataMember屬性有括號,而其他DataMember屬性沒有?
- 17. DataContractSerializer:如何在沒有DataContract/DataMember屬性的情況下序列化類/成員
- 18. DataContract屬性-WCF
- 19. WCF DataContract屬性
- 20. querySelectorAll - 獲取所有具有屬性設置的標籤?
- 21. MonoTouch:如何設置「不備份」屬性
- 22. 是WCF所需的DataContract屬性
- 23. 具有DataContract和DataMembers的TypeBuilder
- 24. Wcf Web服務,重用類型與私有setter屬性和沒有DataContract/DataMember獲取空值
- 25. 設置一個具有相同屬性
- 26. 爲所有子組件設置屬性
- 27. 在DataSource上找不到DataMember屬性[ObjectName]
- 28. 如何在DataContract中使用條件DataMember?
- 29. C#DataContract DataMember EmitDefaultValue = false仍然輸出零
- 30. JsObservable設置具有子屬性的屬性
什麼是凌亂的前期裝修? –
不知道如何回答。只是凌亂。 –
我有很多實體,並且大多數情況下我想擴展它們,包括所有屬性,因此重複屬性數百次只會讓人覺得很麻煩。我希望找出拉迪斯洛夫在下面幫助我的「退出」方法。我寧願裝飾我不想包含的成員。 –