當您創建新的WCF項目時,將爲您生成樣本服務。默認的數據合同(我剛剛換了字符串類型字段標題):爲什麼數據合約中的私人字段是通過公開字段修改的?
[DataContract]
public class CompositeType
{
bool boolValue = true;
string name = "";
[DataMember]
public bool BoolValue
{
get { return boolValue; }
set { boolValue = value; }
}
[DataMember]
public string Name
{
get { return name; }
set { name = value; }
}
}
什麼是具有這些私有字段boolValue和名點?在合同中寫一些數據消毒或其他操作是否是一種好的做法,從而使其膨脹?這似乎是我不直接寫字段的唯一理由。那麼它是英國媒體報道還是它背後有一些原因?
好的,問題實際上是在數據合同(意味着發送它)還是**發送數據之前清理數據**。如果我在其中編寫消毒邏輯,我認爲數據契約可能會**膨脹**。所以你不同意? – Arnthor
我不同意。你稱之爲膨脹,其他定義爲健全的軟件工程最佳實踐。是的,你正在添加幾行代碼,但防禦保護措施是最值得的。另外,我們不寫入ROM芯片。我們擁有處理能力,帶寬和內存,不會犧牲經濟上的堅固性。 – GrayFox374
你沒有再讓我。數據**必須進行消毒,問題是數據合同還是在其他地方進行消毒。例如,它當然不是一個在.ascx文件中編寫數據清理代碼的良好工程實踐,您可以在* back-end * .ascx.cs文件中執行。 **我不是在問getters,setters或驗證。我一直在。**問題是,在哪裏做驗證。 – Arnthor