Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/wcf/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Wcf 在基类上实现IExtensibleDataObject_Wcf_Inheritance_Versioning - Fatal编程技术网

Wcf 在基类上实现IExtensibleDataObject

Wcf 在基类上实现IExtensibleDataObject,wcf,inheritance,versioning,Wcf,Inheritance,Versioning,目前,我们有几个WCF服务可以直接通过网络公开我们的域模型。换句话说,我们没有一个DTO层来映射我们的域和服务层。我别无选择,只能直接用[DataContract]和[DataMember]装饰我们的域对象。我想在所有公开在网络上的域对象上实现IExtensibleDataObject。有人认为在基类上实现IExtensibleDataObject有什么问题吗?所以我会: [DataContract] public EntityBase:IExtensibleDataObject{///IExt

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

[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这样的机制,因为它可以从契约的角度屏蔽事物。尽管如此,我认为这是一个方便的想法。这里有一篇好文章,既有优点(文章本身),也有缺点(第一条评论):