2011-05-09 17 views
2

如果我有一個由所有的模塊內部使用一個核心類,然後我想發佈一個WCF服務這將使這個類的使用......然後呢是做到這一點的最佳方式?是否更好直接或更好地將其標記爲數據合同創建一個新類作爲數據合同要麼繼承或映射到核心結構或......您建議傢伙們做什麼?WCF - 使用數據的方式收縮

+0

我還發現這個問題有關這個可以幫助其他人來到這個網頁:http://stackoverflow.com/questions/83604/wcf-datacontracts-and-underlying-data-structures – Learner 2011-05-09 13:08:32

回答

0

兩者都可以工作,因爲在大多數情況下,客戶端將獲得WSDL/MEX表示 - 不是您的類型直接。在任何情況下,請記住使用明確的[DataContract]/[DataMember]屬性,以便它確實是基於合同的,而不是查看字段。

(注:從您的域名類型不繼承一個DTO,一個DTO應該是獨立的,如果你走這條路)

就個人而言,我更喜歡一個單獨的DTO,但我知道人都有成功直接暴露域模型(例如,LINQ到數據服務的工作方式)。

+0

非常感謝您的反饋。所以,如果兩者都可以工作,哪一個會更好?如果我想出一個可以利用同一個班級的第二個服務,但是稍有不同呢? – Learner 2011-05-09 09:43:56

+2

@克里斯蒂 - 在這種情況下,單獨的DTO。沒有第二個服務的附加背景「,要麼是誠實可行的,我更喜歡單獨的DTO,但它是一個主觀因素,直到你有一個特定的要求來推動它,或者其他的方式 – 2011-05-09 09:44:44

+0

非常感謝Marc。在我結束這個問題之前,請你檢查一下我有這個問題:http://stackoverflow.com/questions/5913177/wcf-multiple-service-contracts-using-pretty-same-data-contracts。說我應該使用繼承,我很確定我不應該這樣做,這個問題非常接近,所以請,如果你有時間並且想要幫助,我只想確保我朝着正確的方向前進 – Learner 2011-05-09 09:51:00