Я обращаюсь к веб-сервису, который предоставляет один метод ProcessMessage
этот метод выглядит следующим образом:
<System.Web.Services.Protocols.SoapHeaderAttribute("payloadManifest", Direction:=System.Web.Services.Protocols.SoapHeaderDirection.InOut), _
System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://exampleurl/operations/ProcessMessage/v1_01/GetTest1" & _
"", RequestNamespace:="http://exampleurl", ResponseNamespace:="http://exampleurl", Use:=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle:=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)> _
Public Sub ProcessMessage(ByRef payload As Payload)
Try
Dim results() As Object = Me.Invoke("ProcessMessage", New Object() {payload})
payload = CType(results(0), Payload)
Dim i As Integer = 0
Catch ex As Exception
End Try
End Sub
Это прекрасно работает, однако, этот метод должен использоваться для различных функций. Если SoapDocumentMethodAttribute
Action
изменяется, ProcessMessage
возвращает разные значения.
Пример:
Изменение
System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://exampleurl/operations/ProcessMessage/v1_01/GetTest1"
К
System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://exampleurl/operations/ProcessMessage/v1_01/GetTest2"
Теперь проблема в том, насколько я вижу, этот Action
должен быть жестко запрограммирован в файле, и поэтому я могу запустить только 1 метод с каждой скомпилированной программой. Есть ли способ динамического изменения Action
или я должен подходить к этому по-другому?