我們目前有幾個WCF服務直接通過線路公開我們的域模型。換句話說,我們沒有一層DTO來映射我們的域和服務層。我別無選擇,只能用[DataContract]和[DataMember]直接修飾我們的域對象。我想在線上公開的所有域對象上實現IExtensibleDataObject。有沒有人看到在基類上實現IExtensibleDataObject有什麼問題?因此,我將有:提前在基類上實現IExtensibleDataObject
1
A
回答
1
感謝馬特
[DataContract]
public EntityBase:IExtensibleDataObject{///IExtensibleDataObject Impl}
[DataContract]
public Person:EntityBase{}
[DataContract]
public Employee:Person{}
感謝。我想我知道它可以正常工作,但我的問題與SOA設計更相關。我在OO世界知道這很好,但是因爲我的域對象也是DTO,所以我擔心增加這個繼承鏈會導致問題的發生。是否有其他人實現IExtensibleDataObject?如果是這樣,你是在所有的datacontracts還是在基類上實現IExtensibleDataObject?
+0
我誤解了你的問題,我的歉意。從純粹的SOA角度來看,像IExtensibleDataObject這樣的機制是不可取的,因爲它可以從合約的角度掩蓋事情。話雖如此,我認爲這個想法是方便的。這是一個很好的帖子,其中包含專業人員(帖子本身)和缺點(第一條評論):http://bloggingabout.net/blogs/vagif/archive/2009/03/29/iextensibledataobject-is-not-only - 用於後向compatibility.aspx – Kwal 2010-01-15 04:07:29
相關問題
- 1. 默認在代理上實現IExtensibleDataObject
- 2. C++基於上下文的類實現
- 3. C#中的基類實現
- 4. 基類實現接口
- 5. 委託給基類實現
- 6. WPF - 爲基類實現System.ComponentModel.INotifyPropertyChanged
- 7. 抽象基類實現
- 8. IExtensibleDataObject vs IExtensibleObject?
- 9. 「在WebView上實現WebViewClient類」
- 10. 在父類還實現IDisposable時在子類上實現IDisposable
- 11. 實現nhibernate。類+抽象基類
- 12. 在派生類上實現接口或覆蓋基本方法
- 13. XmlSerializer等價於IExtensibleDataObject
- 14. 在Doctrine 2實體上使用基類?
- 15. 在基礎實體類(可能使用反射)上實現hashCode和equals?
- 16. 我必須在所有類上實現IDisposable,還是基類足夠?
- 17. 如何實現基本的枚舉類?
- 18. NHibernate的類實現基於價值
- 19. 從一個基類實現INotifyPropertyChanged
- 20. 將接口實現拉入基類
- 21. 實現NodeEntity基類,標籤的含義
- 22. boost.serialization - 免費版本和基類實現
- 23. 實現接口的通用基類
- 24. 替換基類的具體實現C#
- 25. 在rails上實現uml類圖
- 26. 在自定義類上實現NSFastEnumeration
- 27. 在類型上實現靜態方法
- 28. 在ISerialized實現的類上使用DataContract
- 29. 如何在OpenERP上實現抽象類?
- 30. F#在類上實現list []運算符?
你的代碼應該工作得很好。事實上,如果您查看由svcutil生成的代碼,您會看到與您的代碼看起來很像的代碼。看看這個鏈接的更多信息: http://msdn.microsoft.com/en-us/library/system.runtime.serialization.iextensibledataobject.aspx – Kwal 2010-01-12 01:56:42