WsdlService, fournisseur de type (F#)
Fournit des 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 de type statique
Type de paramètre |
Description |
---|---|
ServiceUri : chaîne |
Le URI pour le service Web. |
?LocalSchemaFile : chaîne |
Un fichier de .wsdlschema pour enregistrer le schéma de service mis en cache localement. |
? ForceUpdate : bool |
Requiert qu'une connexion directe au service soit disponible au moment du design et force l'actualisation du fichier de schéma local. La valeur par défaut est true. Lorsque ForceUpdate a la valeur faux, 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 de contrat de données générés implémentent l'interface INotifyPropertyChanged pour activer la liaison des données. |
? Sérialisable : bool |
Si true, les types générés sont sérialisable. La valeur par défaut est false. Si cela est mis à la valeur true, les types générés avec l'attribut sérialisable appliqué. |
? Async : bool |
Si true, génère les signatures synchrones et les signatures de méthode asynchrone. La valeur par défaut est false. |
? CollectionType : chaîne |
Nom complètement qualifié ou assembly-qualifié du type à utiliser comme type de données de collection lorsque le code est généré depuis des schémas. |
Notes
Pour une procédure pas-à-pas qui montre comment utiliser ce fournisseur de type, consultez Procédure pas à pas : accès à un service Web à l'aide des fournisseurs de type (F#).
À propos de WSDL
WSDL est un langage basé sur l'XML pour la description des services Web. Services Web montrant des appels de méthode ou de fonction sur un réseau et, dans le cas du WSDL, Internet. WSDL est utilisé par les services pour fournir une description des appels de fonction disponibles sur le service et des types de données associés. Le type de fournisseur WSDL vous permet d'utiliser des types de données de tout service WSDL immédiatement dans votre code, sans la contrainte habituelle de les créer pour chaque service.
Un document WSDL contient la description pour un service Web. Les documents WSDL sont au format XML et contiennent les définitions des interfaces et des opérations proposées, des messages et des types de données utilisés, et les informations sur les extrémités de connexion, telles que les URI, les ports, et les protocoles utilisés. Un document de WSDL a deux parties importantes, les définitions abstraites des interfaces, leurs types, opérations, et messages, et la partie liaisons.
Interfaces WSDL, également appelés portTypes, sont des regroupements d'opérations. Les opérations sont semblables à des méthodes sur 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 WSDL dans un formulaire abrégé qui n'est pas spécifique au protocole utilisé. La section des liaisons du document WSDL décrit comment les interfaces sont présentées comme des services Web, via un point de terminaison spécifique, ou un port et un protocole spécifiques. Le protocole utilisé avec WSDL est généralement SOAP (protocole SOAP) sur HTTP. Le protocole SOAP permet d'encoder des types et méthodes orientés objets.
WSDL 2.0 est une révision importante du protocole WSDL.
Pour plus d'informations, consultez Understanding WSDL.
À propos du fournisseur de type WSDL
Le fournisseur de type WSDL vous permet de programmer par rapport à un service Web avec un ensemble de types générés automatiquement. En coulisse, 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 fournisseur de type en code 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 du serveur Web au code client. L'objet de service est appelée client SOAP car son travail est d'interagir avec le serveur en utilisant le protocole SOAP afin d'appeler des opérations de service Web. Il équivaut aux types créés en exécutant wsdl.exe et hérite de ClientBase. 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 DataContractSerializer affectent 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 Outil Service Model Metadata Tool (Svcutil.exe). Les types requis pour le service sont générés sous le type WsdlService sous ServiceTypes.
Vous devez ajouter une référence à l'assembly System.ServiceModel pour utiliser le fournisseur de type WsdlService. Vous pourrez aussi avoir besoin de 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 fournisseur de type 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
Version 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#)