【发布时间】:2010-01-29 11:14:12
【问题描述】:
根据您的实际经验,是否可以使用一种方法定义服务合同,该方法将接受某个对象作为请求形式,并作为该请求的结果返回某个其他对象。我的意思是,我没有创建、删除、编辑和搜索客户的方法,而是将这些活动封装在 DataContracts 中,并且在收到此类 DataContract 后服务会采取相应的措施。但是服务接口就这么简单:
interface ISomeService
{
IMessageResult Process(IMessageRequest msg);
}
所以 IMessageRequest 将提交命名为 OperationType = OperationTypes.CreateCustomer ,其余字段将为服务提供足够的信息,以便它可以创建客户对象或在数据库中记录或其他任何内容。并且 IMessageResult 可以包含一些代码以指示是否创建了客户。
我试图通过这种设计来实现将 IMessageRequest 轻松委托给客户端甚至不知道的其他内部服务的能力。我看到的另一个好处是,如果我们必须对客户添加一些操作,我们只需为此操作提供额外的 DataContract 并且不必在服务接口方面进行任何更改(我想不惜一切代价避免这种情况,我的意思是不是新的操作但改变服务接口:)
那么,你怎么看?这是处理复杂业务流程的好方法吗?什么是陷阱,什么可以更好。
如果我复制了一些其他线程并且我的问题有一些答案,请提供链接,因为我没有找到它们。
【问题讨论】: