我们目前有几个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. 抽象基类实现
- 2. 委托给基类实现
- 3. WPF - 为基类实现System.ComponentModel.INotifyPropertyChanged
- 4. IExtensibleDataObject vs IExtensibleObject?
- 5. 在父类还实现IDisposable时在子类上实现IDisposable
- 6. 实现nhibernate。类+抽象基类
- 7. 在派生类上实现接口或覆盖基本方法
- 8. XmlSerializer等价于IExtensibleDataObject
- 9. 在基础实体类(可能使用反射)上实现hashCode和equals?
- 10. boost.serialization - 免费版本和基类实现
- 11. 实现NodeEntity基类,标签的含义
- 12. 从一个基类实现INotifyPropertyChanged
- 13. 将接口实现拉入基类
- 14. NHibernate的类实现基于价值
- 15. 在rails上实现uml类图
- 16. 如何在OpenERP上实现抽象类?
- 17. 在ISerialized实现的类上使用DataContract
- 18. F#在类上实现list []运算符?
- 19. 在类型上实现静态方法
- 20. 在自定义类上实现NSFastEnumeration
- 21. 设计模式的基础上,实现
- 22. Profile.GetProfile()在基类上
- 23. 实现polynimial类实现
- 24. 实施克隆()在基类
- 25. 在基类跟踪实例
- 26. 在FastAdapter上实现IIClickListener实现IItem
- 27. 如何实现基类的虚方法,并在override方法中获得基方法的实现c#
- 28. 上传实例并在C++中调用基类上的函数
- 29. 基于现有实例创建类的新实例
- 30. 如何在我的重写中调用基类实现TextBox :: OnKeyDown()?
你的代码应该工作得很好。事实上,如果您查看由svcutil生成的代码,您会看到与您的代码看起来很像的代码。看看这个链接的更多信息: http://msdn.microsoft.com/en-us/library/system.runtime.serialization.iextensibledataobject.aspx – Kwal 2010-01-12 01:56:42