我有两个网络服务,ServiceReferenceStaging
和ServiceReferenceProduction
。每个名为OperationsClient
的Web服务中的类都有一个我需要使用的方法calculateCost
。
麻烦的是,此方法的签名需要特定于该Web服务的类型:
// staging
ServiceReferenceStaging.OperationsClient.calculateCost(
ServiceReferenceStaging.TransactionHeaderType header,
ServiceReferenceStaging.ExtLocationDetailsType fromAddress,
...
// production
ServiceReferenceProduction.OperationsClient.calculateCost(
ServiceReferenceProduction.TransactionHeaderType header,
ServiceReferenceProduction.ExtLocationDetailsType fromAddress,
...
显然,调用代码并不关心正在使用的Web服务 - 代码应该用于登台和生产,以及从config读取header
值的各种映射方法,并将应用程序的地址映射到{{ 1}}应该适用于登台和生产Web服务。
对于调用代码,我可以将两个Web服务包装在接口的具体实现中。但是,对于每个具体实现,我能以一般方式将域对象映射到fromAddress
和header
吗?