在Base类上实现IExtensibleDataObject

时间:2010-01-11 23:18:53

标签: wcf inheritance versioning

我们目前有几个WCF服务直接通过网络公开我们的域模型。换句话说,我们没有一层DTO来在我们的域和服务层之间进行映射。我别无选择,只能用[DataContract]和[DataMember]直接装饰我们的域对象。我想在线上公开的所有域对象上实现IExtensibleDataObject。有没有人认为在基类上实现IExtensibleDataObject有什么问题?所以我会:

[DataContract]
public EntityBase:IExtensibleDataObject{///IExtensibleDataObject Impl}

[DataContract] 
public Person:EntityBase{}

[DataContract]
public Employee:Person{}

提前致谢

1 个答案:

答案 0 :(得分:1)

谢谢马特。我想我知道它工作正常,但我的问题与SOA设计更相关。我知道在OO世界中这很好,但由于我的域对象也用作DTO,我担心添加这个继承链会导致问题。是否还有其他人实现了IExtensibleDataObject?如果是这样,您是在所有数据交换或基类上实现IExtensibleDataObject吗?