Saltar al contenido

¿Cómo hacer referencia a un archivo WSDL usando Visual Studio Code?

Solución:

Creación manual (desde cero)

Si construye desde cero y no le importa cómo lo hace Visual Studio, puede comenzar con algunos conceptos básicos de esta solución aquí, así como con los otros enlaces a los que se hace referencia en la solución aceptada en la misma página.

Creación manual usando el mismo método que usa Visual Studio

Como referencia, algunos de los archivos generados por el método de referencia de adición de Visual Studio a continuación, se almacenan dentro de una subcarpeta Referencias web/Ejemplo (dónde Ejemplo es el nombre de la variable utilizada para acceder a la referencia) y contiene lo siguiente:

archivo .map

<?xml version="1.0" encoding="utf-8"?>
<DiscoveryClientResultsFile xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <Results>
    <DiscoveryClientResult referenceType="System.Web.Services.Discovery.ContractReference" url="http://example.com/api/index.php?wsdl" filename="index.wsdl" />
  </Results>
</DiscoveryClientResultsFile>

Archivo .wsdl (el mismo nombre que el parámetro ‘nombre de archivo’ de arriba)

Este archivo es el archivo fuente wsdl sin procesar completo (xml bien formateado).

archivo de referencia

Este archivo contiene código para inicializar todos los métodos y propiedades y es la clase base que se extiende System.Web.Services.Protocols.SoapHttpClientProtocol

Las propiedades asignadas a la clase (lo siento, me estoy quitando de un antiguo proyecto de VB.NET: tienen el siguiente aspecto:

<System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.6.1586.0"),  _
 System.Diagnostics.DebuggerStepThroughAttribute(),  _
 System.ComponentModel.DesignerCategoryAttribute("code"),  _
 System.Web.Services.WebServiceBindingAttribute(Name:="ExampleAPIBinding", [Namespace]:="urn:ExampleAPI"),  _
 System.Xml.Serialization.SoapIncludeAttribute(GetType(MyCustomType1)),  _
 System.Xml.Serialization.SoapIncludeAttribute(GetType(MyCustomType2)),  _

 Partial Public Class ExampleAPI
    Inherits System.Web.Services.Protocols.SoapHttpClientProtocol

 End Class

.datasource (1 archivo para cada tipo)

Código de ejemplo

<?xml version="1.0" encoding="utf-8"?>
<!--
    This file is automatically generated by Visual Studio .Net. It is
    used to store generic object data source configuration information.
    Renaming the file extension or editing the content of this file may
    cause the file to be unrecognizable by the program.
-->
<GenericObjectDataSource DisplayName="MyMethodName" Version="1.0" xmlns="urn:schemas-microsoft-com:xml-msdatasource">
   <TypeInfo>ExampleAPI.SOAP.ClientMerchant, Web References.SOAP.Reference.vb.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null</TypeInfo>
</GenericObjectDataSource>

Use Visual Studio para compilarlo por usted, luego ábralo nuevamente en VSCode

Dentro de Visual Studio, puede hacer lo siguiente (y copiar los resultados a su proyecto VSCode)

Paso 1

Haga clic con el botón derecho en su proyecto en el Explorador de proyectos y seleccione Agregar> Referencia de servicio …

Agregar data-lazy-src=

Referencia de servicio”>


Paso 2

Hacer clic [Advanced] en esta pantalla

Agregar referencia de servicio


Paso 3

Hacer clic [Add Web Reference] en esta pantalla

Configuración de referencia de servicio


Paso 4

Ingrese su URL completa a la ubicación WSDL y presione Enter.

Agregar referencia web


Finalmente

Si tiene éxito (se encuentra un WSDL bien formateado), [Add Reference] se habilitará el botón. Haga clic en eso y agregará la referencia a su proyecto.

También puede usar donet-svcutil

https://docs.microsoft.com/en-us/dotnet/core/additional-tools/dotnet-svcutil-guide?tabs=dotnetsvcutil2x

Ejemplo

dotnet-svcutil https://svn.apache.org/repos/asf/airavata/sandbox/xbaya-web/test/Calculator.wsdl

Siguiendo el comentario de Julio, aquí están todos los pasos necesarios con .NET Core (instrucciones para OSX):

  1. Instale dotnet-svcutil:

    dotnet tool install --global dotnet-svcutil
    
  2. Agregue la ruta de las herramientas a su .bash_profile:

    nano ~/.bash_profile
    

    agregue esta línea:

    export PATH=$PATH:$HOME/.dotnet/tools
    

    recarga tu perfil:

    . ~/.bash_profile
    
  3. Navegue hasta la ruta de su aplicación o biblioteca y ejecute el comando. Debe estar en el camino donde desea que viva su referencia de servicio. Por ejemplo:

    cd MY-PROJECT-FOLDER/Library
    dotnet-svcutil PATH-TO-MY-WSDL/my-wsdl.xml
    
  4. Agregue el archivo creado a su .csproj que de forma predeterminada se llamará de forma creativa ServiceReference/Reference.cs. La línea se verá así en su archivo:

    <Content Include="ServiceReferenceReference.cs" />
    
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *