从您的真实世界体验来定义服务契约是否可以使用一种方法来接受某个对象作为请求的一种形式,并返回其他某个对象作为该请求的结果。我的意思不是创建,删除,编辑和搜索客户的方法,而是将这些活动封装在DataContracts中,接收到此类DataContract后执行的操作将采取相应的措施。但是,服务接口是这么简单:WCF服务设计问题
interface ISomeService
{
IMessageResult Process(IMessageRequest msg);
}
所以IMessageRequest会提交名为OperationType = OperationTypes.CreateCustomer和领域的其余部分将提供,它可以在数据库或任何创建Customer对象或记录的服务足够的信息。并且IMessageResult可以有一些代码的字段来指示客户是否被创建。
我试图通过这样的设计实现的功能是轻松地将IMessageRequest委托给客户端甚至不知道的其他内部服务。我看到的另一个好处是,如果我们必须为客户添加一些操作,我们只为此操作提供额外的DataContract,并且不必在服务接口端改变任何内容(我希望不惜一切代价避免这种情况,我的意思不是新的但改变服务界面:)
那么,你觉得呢?这是处理复杂业务流程的好方法吗?什么是坑,什么可能会更好。
如果我复制了一些其他线程,并且我的问题有一些答案,请为我提供链接,因为我没有找到它们。
感谢这些链接,戴维似乎准确地描述了我打算做的事情 – grapkulec 2010-01-29 11:58:43