如果我有一个由所有模块在内部使用的核心类,然后我想发布一个使用此类的wcf 服务。 .那么最好的方法是什么?是直接将其标记为数据契约更好,还是创建一个新类作为数据契约更好,它继承或映射到核心结构,或者......你怎么办?建议伙计们?
最佳答案
两者都可以,因为在大多数情况下,客户端将获得 WSDL/MEX 表示 - 而不是直接使用您的类型。在任何一种情况下,请记住使用明确的 [DataContract]
/[DataMember]
属性,以便它真正是基于契约(Contract),而不是查看字段。
(注意:不要从您的域类型继承 DTO;如果您采用这种方式,DTO 应该是独立的)
就个人而言,我更喜欢单独的 DTO,但我知道人们已经成功地直接公开了域模型(例如,这就是 LINQ-to-Data-Services 的工作方式)。
关于c# - WCF - 使用数据契约的方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5934984/