从您的实际经验来看,定义一个只接受某些对象作为请求形式并返回其他对象作为请求结果的服务契约是否可行?我的意思是,不是为创建、删除、编辑和搜索客户端分别创建方法,而是将这些活动封装在DataContract中,当服务收到这样的DataContract时,服务将根据其采取某些操作。但服务接口只需简单如下:
interface ISomeService
{
IMessageResult Process(IMessageRequest msg);
}
所以IMessageRequest将拥有名为OperationType = OperationTypes.CreateCustomer的字段,其余字段将提供足够的信息,使服务能够创建客户对象或在数据库中创建记录等。IMessageResult可以具有一个带有某些代码的字段,用于指示是否已创建客户。
我通过这样的设计试图实现的目标是能够轻松地将IMessageRequest委托给其他客户端不知道的内部服务。我看到的另一个好处是,如果我们必须对客户进行一些操作,我们只需为此操作提供附加的DataContract,而无需在服务接口方面进行任何更改(我想尽可能避免这种情况,我的意思是不是新的操作,而是改变服务接口:)
那么,你觉得呢?这是处理复杂业务流程的好方法吗?有什么缺陷,有什么可以改进的地方。
如果我重复了其他线程,并且有关于我的问题的答案,请向我提供链接,因为我没有找到它们。