none
Passar parâmetro para WCF com VB6 RRS feed

  • Pergunta

  • Pessoal, 

    Criei um webservice (WCF), no visual studio 2010. Quando faço teste do serviço, este funciona normalmente.

    Mas, agora preciso passar os parâmetros para o wcf através de um programa desenvolvido em vb6. Chego a acessar o serviço, mas meu wcf não reconhece os dados que o vb6 passa.

    Código VB: 

       Private Sub Command5_Click()
       Dim valor As String
       Dim strXML
       Set client = CreateObject("MSSOAP.SoapClient30")
       Call client.mssoapinit("http://localhost/Teste/Service.svc?wsdl")
    strXML = "<s:Envelope xmlns:s=""http://schemas.xmlsoap.org/soap/envelope/"">" & _
             "<s:Header>" & _
             "<Action s:mustUnderstand=""1"" xmlns=""http://schemas.microsoft.com/ws/2005/05/addressing/none"">http://tempuri.org/IService/SelecionaFornecedor</Action>" & _
             "</s:Header>" & _
             "<s:Body>" & _
             "<SelecionaFornecedor xmlns=""http://tempuri.org/"">" & _
             "<NomeFornecedor xmlns:d4p1=""http://schemas.datacontract.org/2004/07/WcfCP"" xmlns:i=""http://www.w3.org/2001/XMLSchema-instance"">" & _
             "<d4p1:NomeForn>Genivaldo</d4p1:NomeForn>" & _
             "</NomeFornecedor>" & _
             "</SelecionaFornecedor>" & _
             "</s:Body>" & _
             "</s:Envelope>"
       valor = client.SelecionaFornecedor(strXML)
       MsgBox valor
    End Sub

    Código WCF .vb:

    <ServiceContract()>
    Public Interface IService
        <OperationContract()>
        Function SelecionaFornecedor(ByVal NomeFornecedor As clsSelecionaFornecedor) As String
    End Interface

    <DataContract()>
    Public Class clsSelecionaFornecedor
        Private vRazao As String
        <DataMember()>
        Public Property NomeForn() As String
            Get
                Return vRazao
            End Get
            Set(ByVal value As String)
                vRazao = value
            End Set
        End Property
    End Class

    Código WCF .svc :

    Public Class Service1
        Implements IService

        Public Sub New()
        End Sub

    Public Function SelecionaFornecedor(ByVal NomeFornecedor As clsSelecionaFornecedor) As String Implements IService.SelecionaFornecedor

            Return "Nome do Fornecedor: " + NomeFornecedor.NomeForn

        End Function
    End Class

    quarta-feira, 10 de outubro de 2012 17:48

Todas as Respostas