2010-03-23 55 views
1

是否有任何成本/缺點(除打字太多)裝飾類System.Runtime.Serialization屬性(如[DataContract]),使它可以在本地用作桌面的客戶端項目作爲WCF服務?這裏的目標是編寫可用於胖客戶端(WPF)和Web場景的數據層類。我的數據類將位於與客戶端 WCF(*.svc代碼隱藏)代碼分開的項目中。這是重用代碼的有效嘗試嗎?無償使用System.Runtime.Serialization屬性?

回答

1

裝飾一個類,屬性或方法不會產生任何成本 - 除了編寫該屬性所花費的時間。該屬性將被編譯到該類型的元數據中,然後被另一個組件用來實現附加功能。

1

我能看到的唯一缺點是在程序集中包含屬性的代價。除非使用它們,否則它們的性能影響很小。

我會說沒有,但它確實使得.DLL變大了,並且確實將RTTI擴散到程序集中了一點,尤其是如果你在讀取塊邊界上推動一個類,可能會減慢程序集加載的速度額外的塊被讀取,否則不會)。然而,這些差異通常僅在冷啓動測試中顯而易見。