WsdlService (Proveedor de tipo de F#)
Proporciona tipos para un servicio web WSDL (lenguaje de descripción de servicios Web).
Namespace/Module Path: Microsoft.FSharp.Data.TypeProviders
Assembly: FSharp.Data.TypeProviders (en FSharp.Data.TypeProviders.dll)
type WsdlService<ServiceUri : string,
?LocalSchemaFile : string,
?ForceUpdate : bool
?MessageContract : bool,
?EnableDataBinding : bool,
?Serializable : bool,
?Async : bool,
?CollectionType : string>
Parámetros de tipo estático
Parámetro de tipo |
Descripción |
---|---|
ServiceUri: cadena |
El identificador URI del servicio web. |
¿? LocalSchemaFile: cadena |
Un archivo de .wsdlschema a almacenar localmente almacenados en memoria caché el esquema del servicio. |
¿? ForceUpdate: bool |
Requiere que una conexión directa al servicio está disponible en tiempo de diseño y fuerza la actualización del archivo local del esquema.El valor predeterminado es true.Cuando ForceUpdate es false, el proveedor responde a los cambios en LocalSchemaFile. |
¿? MessageContract: bool |
Si true, genera los tipos de contrato de mensaje.El valor predeterminado es false. |
¿? EnableDataBinding: bool |
Si es true, los tipos de contrato de datos generadas implementan la interfaz de INotifyPropertyChanged para habilitar el enlace de datos. |
¿? Serializable: bool |
Si true, los tipos generados es serializable.El valor predeterminado es false.Si se establece en true, los tipos generados tienen Serializable que aplicado el atributo. |
¿? Async: bool |
Si true, genera signaturas sincrónicas y método asincrónico.El valor predeterminado es false. |
¿? CollectionType: cadena |
Un completo o nombre calificado con el ensamblado del tipo a utilizar como un tipo de datos de colección cuando se genera el código de esquemas. |
Comentarios
Para un tutorial que muestra cómo utilizar este proveedor de tipo, vea Tutorial: Obtener acceso a un servicio Web mediante proveedores de tipo (F#).
Acerca de WSDL
El WSDL es un lenguaje XML-basado para describir servicios web.Llamadas a métodos o llamadas a funciones de la infraestructura de los servicios web de una red y, en el caso del WSDL, internet.El WSDL es utilizado por servicios de para proporcionar una descripción de las llamadas de función disponibles en el servicio y los tipos de datos asociados.El proveedor de tipo WSDL permite utilizar tipos de datos de cualquier servicio WSDL inmediatamente en el código, sin la sobrecarga habitual de crearlos para cada servicio.
Un documento WSDL contiene la descripción de un servicio web.Los documentos WSDL están en el formato XML y contienen las definiciones de las interfaces y las operaciones proporcionadas, mensajes y los tipos de datos utilizados, e información sobre extremos de red, como los URI, puertos, y los protocolos utilizados.Un documento WSDL tiene dos secciones importantes, definiciones abstractas de interfaces, los tipos, las operaciones, y los mensajes, y la sección de enlaces.
Las interfaces WSDL, también conocidas como portTypes, son agrupaciones de operaciones.Las operaciones son como métodos en una interfaz.Las operaciones, como métodos, pueden tener parámetros y valores devueltos.Las operaciones se describen en el documento WSDL en un formulario abstracto que no es específico del protocolo utilizado.La sección de enlaces del documento WSDL describe cómo las interfaces se exponen como servicios web, con un extremo específica, o puerto y protocolo.El protocolo utilizado con WSDL es normalmente SOAP (protocolo de acceso a objetos de Simple) sobre HTTP.El protocolo SOAP proporciona una manera de codificar tipos orientado a objetos y métodos.
El WSDL 2.0 es una revisión importante de protocolo WSDL.
Para obtener más información, vea WSDL de introducción.
Sobre el proveedor de tipo WSDL
El proveedor de tipo WSDL permite programar con un servicio web con un conjunto de tipos auto- generados.En segundo plano, el compilador ejecuta svcutil.exe para generar los tipos que puede utilizar para tener acceso al servicio web.Declarando los generan el tipo que el proveedor en F# codificación para el servicio.Las siguientes líneas de código se muestra esto:
type terraService = WsdlService<"http://www.terraserver-usa.com/TerraServer2.asmx?WSDL">
let terraClient = terraService.GetTerraServiceSoap ()
El objeto de servicio oculta los detalles del protocolo SOAP y expone la funcionalidad del servidor web al código de cliente.El objeto de servicio se conoce como cliente SOAP porque su trabajo es interactuar con el servidor mediante el protocolo SOAP para llamar a operaciones de servicio web.Es análogo a los tipos creados ejecutando wsdl.exe y hereda de ClientBase<TChannel>.Los objetos customer contienen no solo los métodos heredados de su clase base sino también los métodos web proporcionados por el servicio web.
Los argumentos estáticos DataContractOnly, EnableDataBinding, MessageContract, Async, CollectionType, e influencia de DataContractSerializer los argumentos de la línea de comandos con nombres similares especificados en svcutil.exe.Para obtener más información sobre el efecto de estos argumentos, vea ServiceModel Metadata Utility Tool (Svcutil.exe).Se generan los tipos requeridos para el servicio en WsdlService escrito en ServiceTypes.
Debe agregar una referencia al ensamblado System.ServiceModel para utilizar el proveedor de tipo de WsdlService .Puede que también necesite System.Runtime.Serialization.
Los tipos que se utilizan para los métodos web están incluidos en una serie de tipos anidados bajo ServiceTypes.
Ejemplo
El ejemplo siguiente se muestra cómo utilizar el proveedor del tipo de WsdlService para llamar a un método en un servicio web, en este caso, TerraServer el sitio publicado por Microsoft Research.
open System
open System.ServiceModel
open Microsoft.FSharp.Linq
open Microsoft.FSharp.Data.TypeProviders
type terraService = Microsoft.FSharp.Data.TypeProviders.WsdlService<"http://terraserver-usa.com/TerraService2.asmx?WSDL">
try
let terraClient = terraService.GetTerraServiceSoap ()
let myPlace = new terraService.ServiceTypes.msrmaps.com.Place(City = "Redmond", State = "Washington", Country = "United States")
let myLocation = terraClient.ConvertPlaceToLonLatPt(myPlace)
printfn "Redmond Latitude: %f Longitude: %f" (myLocation.Lat) (myLocation.Lon)
with
| :? ServerTooBusyException as exn ->
let innerMessage =
match (exn.InnerException) with
| null -> ""
| innerExn -> innerExn.Message
printfn "An exception occurred:\n %s\n %s" exn.Message innerMessage
| exn -> printfn "An exception occurred: %s" exn.Message
Console.WriteLine("Press any key to continue...");
Console.ReadLine() |> ignore
Output
Plataformas
Windows 8, Windows 8, Windows 7, Windows Server 2012, Windows Server 2008 R2
Información de versiones
Versiones de la biblioteca básica de F#
Se admite en: 2.0, 4.0, portables
Vea también
Tareas
Tutorial: Obtener acceso a un servicio Web mediante proveedores de tipo (F#)
Referencia
Microsoft.FSharp.Data.TypeProviders (Espacio de nombres de F#)