Создать универсальный класс для нескольких клиентов веб-сервисов в VB.Net - PullRequest
0 голосов
/ 27 октября 2019

У меня есть несколько веб-сервисов (ссылок на сервисы) в моем проекте. Мне нужно изменить конечную точку (только домен) всех их в зависимости от переменной.

Я попытался создать универсальный класс, чтобы изменить любой из них.

    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

Как мне реализовать универсальный класс для всех клиентов веб-сервисов?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...