У меня есть класс, в котором переменная конечная точка должна быть глобальным (для других подпрограмм и функций в классе):Как условно установить ServiceModel.EndpointAddress URI во время выполнения
Public Class MyFirstVbNetClassEver
Dim testEndpoint As New ServiceModel.EndpointAddress("https://test.my.employer.com/ws/soap?wsdl")
Dim productionEndpoint As New ServiceModel.EndpointAddress("https://my.employer.com/ws/soap?wsdl")
Public Sub Run()
If (PRDOCUTION) Then
Dim endpoint As New ServiceModel.EndpointAddress(productionEndpoint)
Else
Dim endpoint As New ServiceModel.EndpointAddress(testEndpoint)
End If
End Sub
End Class
Проблема заключается в том, что ServiceModel. EndpointAddress не имеет конструктора, который принимает параметр своего типа (т. Е. «Конструктор копирования»).
И не имеет конструктора по умолчанию, который позволяет позже установить URI.
Каков правильный способ достижения того, что я хочу делать в VB.NET?
Ваш первый подход, что я просто попытался и, кажется, работает. Однако синтаксис, который вы опубликовали, не будет компилироваться как есть, поскольку ServiceModel.EndpointAddress не принимает '='. Мое обходное решение состоит в том, чтобы объявить «Dim endpoint» без каких-либо изменений после него. Он работает, но компилятор выдает предупреждение * «Объявление переменной без предложения« As », тип предполагаемого объекта. * – Withheld
Ваш второй подход работает на C#, Java и C++, но не в VB.NET :) – Withheld
Почему вы Скажем, он не будет работать в VB.NET? Оба примера работают нормально. –