私は 2 つの 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
、config から値を読み取ってアプリケーションのアドレスをマップするさまざまなマッピング メソッドfromAddress
は、ステージングと実稼働の両方の Web サービスで機能する必要があります。 .
呼び出しコードでは、2 つの Web サービスをインターフェイスの具体的な実装でラップできます。しかし、具体的な実装ごとにドメイン オブジェクトを一般的な方法でheader
マッピングするにはどうすればよいでしょうか。fromAddress