2011-05-09 21 views
2

如果我有一个由所有的模块内部使用一个核心类,然后我想发布一个WCF服务这将使这个类的使用......然后呢是做到这一点的最佳方式?是否更好直接或更好地将其标记为数据合同创建一个新类作为数据合同要么继承或映射到核心结构或......您建议家伙们做什么?WCF - 使用数据的方式收缩

+0

我还发现这个问题有关这个可以帮助其他人来到这个网页:http://stackoverflow.com/questions/83604/wcf-datacontracts-and-underlying-data-structures – Learner 2011-05-09 13:08:32

回答

0

两者都可以工作,因为在大多数情况下,客户端将获得WSDL/MEX表示 - 不是您的类型直接。在任何情况下,请记住使用明确的[DataContract]/[DataMember]属性,以便它确实是基于合同的,而不是查看字段。

(注:从您的域名类型不继承一个DTO,一个DTO应该是独立的,如果你走这条路)

就个人而言,我更喜欢一个单独的DTO,但我知道人都有成功直接暴露域模型(例如,LINQ到数据服务的工作方式)。

+0

非常感谢您的反馈。所以,如果两者都可以工作,哪一个会更好?如果我想出一个可以利用同一个班级的第二个服务,但是稍有不同呢? – Learner 2011-05-09 09:43:56

+2

@克里斯蒂 - 在这种情况下,单独的DTO。没有第二个服务的附加背景“,要么是诚实可行的,我更喜欢单独的DTO,但它是一个主观因素,直到你有一个特定的要求来推动它,或者其他的方式 – 2011-05-09 09:44:44

+0

非常感谢Marc。在我结束这个问题之前,请你检查一下我有这个问题:http://stackoverflow.com/questions/5913177/wcf-multiple-service-contracts-using-pretty-same-data-contracts。说我应该使用继承,我很确定我不应该这样做,这个问题非常接近,所以请,如果你有时间并且想要帮助,我只想确保我朝着正确的方向前进 – Learner 2011-05-09 09:51:00