0

我有两个 Web 服务ServiceReferenceStagingServiceReferenceProduction. 每个调用的 Web 服务中的一个类OperationsClient都有一个calculateCost我需要使用的方法。

麻烦的是,此方法的签名需要特定于该 Web 服务的类型:

// staging
ServiceReferenceStaging.OperationsClient.calculateCost(
    ServiceReferenceStaging.TransactionHeaderType header,
    ServiceReferenceStaging.ExtLocationDetailsType fromAddress,
    ...

// production
ServiceReferenceProduction.OperationsClient.calculateCost(
    ServiceReferenceProduction.TransactionHeaderType header,
    ServiceReferenceProduction.ExtLocationDetailsType fromAddress,
    ...

显然,调用代码并不关心正在使用什么 web 服务 - 代码在登台和生产中应该工作相同,并且header从配置读取值并将应用程序地址映射到的各种映射方法fromAddress应该适用于登台和生产 web 服务.

对于调用代码,我可以将两个 Web 服务包装在一个接口的具体实现中。但是我可以做些什么来将域对象映射到每个具体实现的通用方式headerfromAddress

4

0 回答 0