在企业级程序集中定义DataContracts然后在WCF服务项目中引用它们而不是在单个WCF服务解决方案级别定义它们是一种好的做法吗?我见过的所有WCF示例都避免了该主题,并且仅在服务解决方案中定义了DataContracts.我与之交谈的一些程序员希望将DataContracts视为企业级规范数据模型的不同风格,而不是服务本地合同.我还没有找到支持或反对这一观点的任何论据.
可能很难为这个问题选择正确的答案,但我会尝试.我将至少放弃任何我认为增加了对该主题的理解的投票.
我非常喜欢将DataContracts(和服务合同)放入程序集然后与服务和客户端共享它们的想法,但我认为没有任何充分理由将它们全部放入一个整体程序集中.
根据它们的使用方式将它们放入装配体中更有意义.如果有几组服务和客户共享,那么这就是一个程序集等.
这样做消除了暴露元数据的需要,我认为它会让你做一些漂亮的事情,比如在服务器端和客户端连接序列化事件.