如何:为多态 Web 方法建模
业务数据目录可以支持多态 Web 方法。根据调用对象的实例的运行时类型,多态 Web 方法可返回不同的对象。例如,假定 Web 服务从会计系统返回发票、客户、订单和相关细节。您可以使用单个 Web 方法(例如 Object GetObject())、根据输入参数的值返回客户、发票、订单或者订单详细信息。例如,如果调用该方法时预期的返回类型为 Customer,该 Web 方法将返回 Customer 对象。
如果遇到多态 Web 方法,就必须在应用程序定义文件中定义您感兴趣的各个版本的方法返回子类型。针对前一个示例,您需要定义多个方法,根据输入参数的值为 Customer GetObject()、Invoice GetObject()、Order GetObject() 和 OrderDetail GetObject() 分别定义一个方法。在运行时,业务数据目录会调用与方法签名相匹配的相应方法。
示例
<Methods>
<Method Name="CustomerSpecificFinder">
….
….
//The return parameter is a Customer object.
</Method>
<Method Name="InvoiceSpecificFinder">
….
….
//The return parameter is an Invoice object.
</Method>
<Method Name="OrderSpecificFinder">
….
….
//The return parameter is an Order object.
</Method>
<Method Name="OrderDetailSpecificFinder">
….
….
//The return parameter is an Order Detail object.
</Method>
</Methods>