我有两个 Web 服务ServiceReferenceStaging
和ServiceReferenceProduction
. 每个调用的 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 服务包装在一个接口的具体实现中。但是我可以做些什么来将域对象映射到每个具体实现的通用方式header
?fromAddress