我有一堆原始類型如int,小數,和DateTime
的特性(這是,當然,一個結構)一個WCF數據契約。WCF Data Contract - 執行所需值的最佳/最乾淨的方法?
我的同事建議把他們都爲空的,然後通過檢查驗證無效在服務端所需的值。我相信推理部分是因爲它是一個序列化對象,你不能用數據契約上構造執行所需的值 - 它可以避免測試默認值的頭痛。
不過,我也想所需屬性在合同中隱含這樣一個客戶端可以有一些想法性質需要什麼。
因此,而不是做這樣的事情,
[DataMember]
public Nullable<int> AgencyID { get; set; }
這將讓我清晰地測試空在服務端,我應該這樣做:
[DataMember(IsRequired = true, EmitDefaultValue = true)]
public int AgencyID { get; set; }
這是我的理解是如果屬性沒有被賦值或者默認值爲0,這將拋出異常 - 這是期望的行爲。這是在客戶端強制執行所需屬性的最佳做法嗎?將所有內容都設爲空並在服務端檢查它有什麼好處?
我不知道我對你的問題有100%的理解......你能分享一下你的核心目標嗎? – Adil
好的,我編輯了這個問題,試圖澄清。 – lintmouse