如何处理服务方法输入的变化

时间:2010-09-20 15:42:52

标签: .net wcf web-services

我有一个应该能够处理以下内容的客户端应用程序:

1)请求要对客户端执行的sql语句。 2)请求将对客户端执行的Service Pack或Hoxfixes。 3)客户可能会在以后执行更多类型的任务。

执行这些任务类型中的每一种都会产生某种结果。对于sql语句,结果是一个数据集,我通过WCF方法调用将其序列化回服务器,因此可以保存数据。虽然我还没有达到这一发展阶段,但我可以假设服务包执行的结果可能是执行状态的指示。即成功,失败,错误消息。此信息还需要通过WCF通过线路传输,以便记录。到目前为止,有两种结果可能性。这种不同的返回信息可以放入类似“ExecutionResults”的类中,但保存每种类型的ExecutionResult所采取的操作将会有所不同。

问题是我是否应该尝试设置客户端和服务器都知道的共享(抽象类型),然后将此类型转换为服务器上正确的具体类型?或者我应该为每个不同的场景创建一个单独的服务方法?

1 个答案:

答案 0 :(得分:1)

如果对子类型使用共享基类型,则仍需要为客户端和服务器提供子类型,并且必须在基类型上使用KnownTypeAttribute。这是一种方法。

我会为每项活动选择不同操作的第二种方法。原因是这些活动没有任何共享的上下文。每个都是绝对不同的要求所以我想更好的设计是使用单独的方法。您不知道将来应该处理哪项任务,因此这种设计可以更好地扩展和一致。在不影响现有操作的情况下添加操作也可以更好地进行版本控制。