过滤Web服务的参数设计问题

时间:2009-12-22 03:25:42

标签: wcf web-services

过滤条件参数需要作为返回帐户数据月度摘要的Web服务的参数提供。

GetLedgerSummary(会计年度,财政月份,过滤器)返回LedgerSummaryResponse

LedgerSummaryResponse包含公司代码,帐户代码,会计年度,财政月份和金额。

应该如何设计“过滤”标准,以便我可以将查询响应限制为一组选定的“公司代码”和“帐户代码”,并且最终用户可以轻松使用Web服务报告?

我正在考虑的方法是为Filter对象提供“公司代码”和“帐户代码”属性,该属性接受任何分隔的过滤器值字符串。

任何类似Web服务的定义过滤条件的链接都非常有用。

1 个答案:

答案 0 :(得分:1)

我认为您走在正确的轨道上,您希望您的呼叫者能够通过公司代码和帐户代码过滤LedgerSummaryResponse。真的有两种选择,一种是你的选择,这可能会产生以下影响:

GetLedgerSummary(int year, int month, string [] companyCodes, string [] accountCodes)
{
  // You would implement logic to filter the codes 
}

另一种选择是构建一个枚举并将其公开为KnownType,这样用户只能传递有效值,但很可能公司代码和帐户代码存储在某种数据存储中,所以这可能不实用。我想说你所描述的最初方法应该有效。我想可以忽略无效的公司/帐户代码。