Visual Studio が適切なプロキシ クラスを自動的に生成できるようにすることをお勧めします。次に、すべてのラッパー クラスが同じインターフェイスを実装できるように、Web サービスごとにラッパー クラスを実装します。たとえば、次のような共通インターフェイスを作成できます。
Public Interface IPersonBusiness
Sub DeletePerson(personId As String)
End Interface
次に、2 つの Web サービスがあるとします。1 つ目は と呼びますがWebService1
、Delete
個人 ID に続いて削除時間を受け取るメソッドがあります。2 番目の Web サービス ( と呼びますWebService2
) には、DeletePeople
個人 ID の配列を受け取るメソッドがあります。次のように、上記の共通インターフェースを使用して、これらの両方の Web サービスをラップできます。
Public Class WebService1Wrapper
Implements IPersonBusiness
Public Sub New(proxy As WebService1)
_proxy = proxy
End Sub
Private _proxy As WebService1
Public Sub DeletePerson(personId As String) Implements IPersonBusiness.DeletePerson
_proxy.Delete(personId, Date.Now)
End Sub
End Class
Public Class WebService2Wrapper
Implements IPersonBusiness
Public Sub New(proxy As WebService2)
_proxy = proxy
End Sub
Private _proxy As WebService2
Public Sub DeletePerson(personId As String) Implements IPersonBusiness.DeletePerson
_proxy.DeletePeople({personId})
End Sub
End Classs
本当に必要でない限り、独自のプロキシ コードを作成することは避けます。たとえば、メソッド名や渡すパラメータなどを伝える外部設定に基づいて Web サービスを動的に呼び出す必要がある場合は、検討する価値があります。
また、任意の Web サービスを呼び出すためのすべてのロジックを単一のラッパー クラスに入れることも避けます。これを行うと、特に将来 Web サービスを追加する必要がある場合に、コードが不必要に見苦しく、混乱を招くことになります。