WsdlService, fournisseur de type (F#)
Fournit les types pour un service Web de WSDL (web services description langage).
Namespace/Module Path: Microsoft.FSharp.Data.TypeProviders
Assembly: FSharp.Data.TypeProviders (dans FSharp.Data.TypeProviders.dll)
type WsdlService<ServiceUri : string,
?LocalSchemaFile : string,
?ForceUpdate : bool
?MessageContract : bool,
?EnableDataBinding : bool,
?Serializable : bool,
?Async : bool,
?CollectionType : string>
Paramètres statiques
Paramètre de type |
Description |
---|---|
ServiceUri : chaîne |
L'URI du service Web. |
? LocalSchemaFile : chaîne |
Un fichier de .wsdlschema à stocker localement a mis en cache le schéma de service. |
? ForceUpdate : bool |
Requiert qu'une connexion directe au service est disponible au moment de le design et force l'actualisation du fichier de schéma local.La valeur par défaut est true.Lorsque ForceUpdate a la valeur false, le fournisseur réagit aux modifications dans LocalSchemaFile. |
? MessageContract : bool |
Si true, génère des types de contrat de message.La valeur par défaut est false. |
? EnableDataBinding : bool |
Si la valeur true, les types générés de contrat de données implémentent l'interface d' INotifyPropertyChanged pour activer la liaison de données. |
? sérialisable : bool |
Si true, les types sont générés sérialisable.La valeur par défaut est false.Si cela a la valeur true, les types générés avec l'attribut appliqué sérialisable. |
? Async : bool |
Si true, génère les signatures de méthode synchrone et asynchrone.La valeur par défaut est false. |
? CollectionType : chaîne |
Un nom qualifié complet ou qualifié d'assembly du type à utiliser comme type de données de collection lorsque le code est généré des schémas. |
Notes
Pour une procédure pas - à - pas qui montre comment utiliser ce type de fournisseur, consultez Procédure pas à pas : accès à un service Web à l'aide des fournisseurs de type (F#).
À propos de WSDL
WSDL est un langage XML pour décrire les services Web.Appels de méthode pour exposer des services Web ou appels de fonction sur un réseau et, dans le cas de WSDL, de Internet.WSDL est utilisé par les services pour fournir une description des appels de fonction disponibles sur le service et les types de données associés.Le type de fournisseur WSDL vous permet aux types de données d'utilisation de n'importe quel service web services description de immédiatement dans votre code, sans la charge mémoire habituelle de les créer pour chaque service.
Un document de WSDL contient la description d'un service Web.Les documents de WSDL sont au format XML et contiennent les définitions des interfaces et les opérations offertes, les messages et les types de données utilisés, et les informations sur les points de terminaison de mise en réseau, tels que les URI, les ports, et les protocoles utilisés.Un document de WSDL a deux sections pertinentes, les définitions des interfaces abstraites, leurs types, opérations, et messages, et la section des liaisons.
WSDL interfaces, également appelés portTypes, sont des regroupements des opérations.Les opérations sont semblables à des méthodes dans une interface.Les opérations, comme les méthodes, peuvent avoir des paramètres et des valeurs de retour.Les opérations sont décrites dans le document de WSDL dans un formulaire abstraite qui n'est pas spécifique au protocole utilisé.La section des liaisons du document de WSDL décrit comment les interfaces sont exposées comme services Web, via un point de terminaison spécifique, ou port et protocole.Le protocole utilisé avec WSDL est généralement SOAP (protocole simple Access object) sur HTTP.Le protocole SOAP permet d'encoder les types et les méthodes orientés objet.
WSDL 2,0 est une révision importante du protocole de WSDL.
Pour plus d'informations, consultez WSDL de présentation.
Sur le type de fournisseur WSDL
Le type de fournisseur WSDL vous permet au programme par rapport à un service Web à un ensemble de types générés automatiquement.En arrière-plan, le compilateur exécute svcutil.exe pour générer les types que vous pouvez utiliser pour accéder au service Web.Ils sont générés en déclarant le type fournisseur en F# pour le service.Les lignes de code suivantes illustrent ceci :
type terraService = WsdlService<"http://www.terraserver-usa.com/TerraServer2.asmx?WSDL">
let terraClient = terraService.GetTerraServiceSoap ()
L'objet de service masque les détails du protocole SOAP et expose les fonctionnalités de serveur Web au code client.L'objet de service est connu sous le nom d'un client SOAP car son travail est d'interagir avec le serveur à l'aide de le protocole SOAP pour appeler des opérations de service Web.Il est analogue à des types créés en exécutant wsdl.exe et hérite d' ClientBase<TChannel>.Les objets clients contiennent pas uniquement les méthodes héritées de sa classe de base mais également des méthodes Web fournies par le service Web.
Les arguments statiques DataContractOnly, EnableDataBinding, MessageContract, Async, CollectionType, et affectent d' DataContractSerializer les arguments de ligne de commande avec des noms similaires donnés à svcutil.exe.Pour plus d'informations sur l'effet de ces arguments, consultez ServiceModel Metadata Utility Tool (Svcutil.exe).Les types requis pour le service sont générés sous le type d' WsdlService sous ServiceTypes.
Vous devez ajouter une référence à l'assembly System.ServiceModel pour utiliser le type fournisseur d' WsdlService .Vous pouvez également avoir besoin d' System.Runtime.Serialization.
Les types utilisés pour les méthodes Web sont inclus dans une série de types imbriqués sous ServiceTypes.
Exemple
L'exemple suivant indique comment utiliser le type fournisseur d' WsdlService pour appeler une méthode sur un service Web, dans ce cas, TerraServer le site publié par 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
Sortie
Plateformes
Windows 8, windows 8, Windows 7, Windows Server 2012, Windows Server 2008 R2
Informations de version
Versions de bibliothèque principale F#
Prise en charge dans : 2,0, 4,0, portables
Voir aussi
Tâches
Procédure pas à pas : accès à un service Web à l'aide des fournisseurs de type (F#)
Référence
Microsoft.FSharp.Data.TypeProviders, espace de noms (F#)