Wcf 在基类上实现IExtensibleDataObject
目前,我们有几个WCF服务可以直接通过网络公开我们的域模型。换句话说,我们没有一个DTO层来映射我们的域和服务层。我别无选择,只能直接用[DataContract]和[DataMember]装饰我们的域对象。我想在所有公开在网络上的域对象上实现IExtensibleDataObject。有人认为在基类上实现IExtensibleDataObject有什么问题吗?所以我会:Wcf 在基类上实现IExtensibleDataObject,wcf,inheritance,versioning,Wcf,Inheritance,Versioning,目前,我们有几个WCF服务可以直接通过网络公开我们的域模型。换句话说,我们没有一个DTO层来映射我们的域和服务层。我别无选择,只能直接用[DataContract]和[DataMember]装饰我们的域对象。我想在所有公开在网络上的域对象上实现IExtensibleDataObject。有人认为在基类上实现IExtensibleDataObject有什么问题吗?所以我会: [DataContract] public EntityBase:IExtensibleDataObject{///IExt
[DataContract]
public EntityBase:IExtensibleDataObject{///IExtensibleDataObject Impl}
[DataContract]
public Person:EntityBase{}
[DataContract]
public Employee:Person{}
提前谢谢谢谢马特。我想我知道它工作得很好,但我的问题更多地与SOA设计有关。我知道在OO世界中,这很好,但由于我的域对象也充当DTO,我担心添加此继承链会导致后续问题。还有人在实现IExtensibleDataObject吗?如果是这样,您是在所有DataContract上还是在基类上实现IExtensibleDataObject?谢谢Matt。我想我知道它工作得很好,但我的问题更多地与SOA设计有关。我知道在OO世界中,这很好,但由于我的域对象也充当DTO,我担心添加此继承链会导致后续问题。还有人在实现IExtensibleDataObject吗?如果是这样,您是在所有DataContract上还是在基类上实现IExtensibleDataObject?您的代码应该可以正常工作。事实上,如果您查看svcutil生成的代码,您将看到与您的代码非常相似的代码。查看此链接了解更多信息:您的代码应该可以正常工作。事实上,如果您查看svcutil生成的代码,您将看到与您的代码非常相似的代码。查看此链接了解更多信息:我很抱歉我误解了你的要求。从纯SOA的角度来看,不希望有像IEExtensibleDataObject这样的机制,因为它可以从契约的角度屏蔽事物。尽管如此,我认为这是一个方便的想法。这里有一篇很好的帖子,既有优点(帖子本身),也有缺点(第一条评论):我很抱歉我误解了你的提问。从纯SOA的角度来看,不希望有像IEExtensibleDataObject这样的机制,因为它可以从契约的角度屏蔽事物。尽管如此,我认为这是一个方便的想法。这里有一篇好文章,既有优点(文章本身),也有缺点(第一条评论):