consumir webservices VB.NET

1,008 views
Skip to first unread message

divonei Macedo

unread,
May 24, 2011, 4:08:08 PM5/24/11
to dotn...@googlegroups.com
Boa tarde pessoal,

Alguem ja consumiu webservices no VB.net dinamicamente sem precisar adicionar a referencia do webservice.

eu pesquisei na net nao encontrei nada muito esclarecedor o mais proximo que encontrei foi esse codigo abaixo mas acredito que seja somente para C#

Imports System.CodeDom
Imports System.CodeDom.Compiler
Imports System.Security.Permissions
Imports System.Web.Services.Description
Imports System.Reflection

Public Function CallWebService(ByVal webServiceAsmxUrl As String, _
ByVal serviceName As String, ByVal methodName As String, _
ByVal args() As Object) As Object

Try
Dim client As System.Net.WebClient = New System.Net.WebClient()

'-Connect To the web service
Dim stream As System.IO.Stream = _
client.OpenRead(webServiceAsmxUrl + "?wsdl")

'Read the WSDL file describing a service.
Dim description As ServiceDescription = ServiceDescription.Read(stream)

'LOAD THE DOM'''''''''''''''''''''''''''

'--Initialize a service description importer.
Dim importer As ServiceDescriptionImporter = New ServiceDescriptionImporter()
importer.ProtocolName = "Soap12" ' Use SOAP 1.2.
importer.AddServiceDescription(description, Nothing, Nothing)

'--Generate a proxy client.

importer.Style = ServiceDescriptionImportStyle.Client
'--Generate properties to represent primitive values.
importer.CodeGenerationOptions = _
System.Xml.Serialization.CodeGenerationOptions.GenerateProperties

'Initialize a Code-DOM tree into which we will import the service.
Dim nmspace As CodeNamespace = New CodeNamespace()
Dim unit1 As CodeCompileUnit = New CodeCompileUnit()
unit1.Namespaces.Add(nmspace)

'Import the service into the Code-DOM tree.
'This creates proxy code that uses the service.

Dim warning As ServiceDescriptionImportWarnings = _
importer.Import(nmspace, unit1)

If warning = 0 Then

'--Generate the proxy code
Dim provider1 As CodeDomProvider = _
CodeDomProvider.CreateProvider("VB")
'--Compile the assembly proxy with the // appropriate references
Dim assemblyReferences() As String
assemblyReferences = New String() {"System.dll", _
"System.Web.Services.dll", "System.Web.dll", _
"System.Xml.dll", "System.Data.dll"}
Dim parms As CompilerParameters = New CompilerParameters(assemblyReferences)
parms.GenerateInMemory = True '(Thanks for this line nikolas)
Dim results As CompilerResults = provider1.CompileAssemblyFromDom(parms, unit1)

'-Check For Errors
If results.Errors.Count > 0 Then

Dim oops As CompilerError
For Each oops In results.Errors
System.Diagnostics.Debug.WriteLine("========Compiler error============")
System.Diagnostics.Debug.WriteLine(oops.ErrorText)
Next
Throw New System.Exception("Compile Error Occurred calling webservice.")
End If

'--Finally, Invoke the web service method
Dim wsvcClass As Object = results.CompiledAssembly.CreateInstance(serviceName)
Dim mi As MethodInfo = wsvcClass.GetType().GetMethod(methodName)
Return mi.Invoke(wsvcClass, args)

Else
Return Nothing
End If

Catch ex As Exception
Throw ex
End Try
End Function


Se alguém puder me ajudar fico grato







danie...@gmail.com

unread,
May 24, 2011, 4:14:27 PM5/24/11
to dotn...@googlegroups.com
Esse snippet q vc mandou está exatamente em VB.NET....
> --
>
> ==============================
>
> Comunidade de desenvolvedores Dot Net no Brasil
>
>  
>
> WebSite: www.dotnetbr.com
>
>  
>
> E-mail do Grupo: dotn...@googlegroups.com
>
> ==============================
>
>

divonei Macedo

unread,
May 24, 2011, 4:32:09 PM5/24/11
to dotn...@googlegroups.com
eu pensei que fosse em C# mas tem um problema essa linha:

Dim importer As ServiceDescriptionImporter = New ServiceDescriptionImporter()

me da erro no vb.net eu estou usando o visual studio 2010
no site da referencia nao disseram qual vb.net utilizaram e nem quais referencias adicionar ao projeto =/

Renato Cantarino

unread,
May 24, 2011, 5:00:23 PM5/24/11
to dotn...@googlegroups.com
ué.... já saiu a versao 5 do C# ?

2011/5/24 divonei Macedo <divon...@gmail.com>

Juan Lopes

unread,
May 24, 2011, 5:10:07 PM5/24/11
to dotn...@googlegroups.com
Céus...

Cara, tente ter um pouco mais de atenção antes de postar. Senão você vira piada por ai.

Marcus Alexandre Silva

unread,
May 25, 2011, 5:06:38 PM5/25/11
to dotn...@googlegroups.com
Ja estão querendo apelidar as mancadas de "divoneiadas" por aqui no trampo...

2011/5/24 Juan Lopes <m...@juanlopes.net>:

Daniel Freire

unread,
May 25, 2011, 6:37:21 PM5/25/11
to dotn...@googlegroups.com
kkkkkkk

Esse post tb foi mencionado no #horaextrabh
TEMÇO
Daniel C. Freire
Analista Desenvolvedor
MCP, MCTS - Web Applications 2.0
(31) 8467-2331
@danielfreire
Reply all
Reply to author
Forward
0 new messages