У меня есть несколько веб-сервисов (ссылок на сервисы) в моем проекте. Мне нужно изменить конечную точку (только домен) всех их в зависимости от переменной.
Я попытался создать универсальный класс, чтобы изменить любой из них.
Option Strict On
Option Explicit On
Imports System.ServiceModel
Imports System.Linq
Imports System.ServiceModel.Channels
Public Class GenericWebService(Of T As ClientBase(Of ¿¿¿???))
Public Shared Function GetWebService(domainId As String) As T
Dim domain As String = DatabaseEngine.GetDomain(domainId)
Dim address As EndpointAddress
If String.IsNullOrWhiteSpace(domain) Then
address = New T().Endpoint.Address
Else
address = New EndpointAddress("http://" + domain + New T().Endpoint.Address.Uri.AbsolutePath)
End If
Return New T(New BasicHttpBinding(), address)
End Function
End Class
Яне сосредотачивая проблему на логике метода, но на том, как класс должен быть объявлен. Клиенты веб-сервисов объявляются так:
<System.Diagnostics.DebuggerStepThroughAttribute(), _
System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")> _
Partial Public Class WSSoapClient
Inherits System.ServiceModel.ClientBase(Of Ws.WSSoap)
Implements Ws.WSSoap
Как мне реализовать универсальный класс для всех клиентов веб-сервисов?