Freigeben über


WsdlService-Typanbieter (F#)

Stellt die Typen für einen Webdienst WSDL (Web Services Description Language) bereit.

Namespace/Module Path: Microsoft.FSharp.Data.TypeProviders

Assembly: FSharp.Data.TypeProviders (in FSharp.Data.TypeProviders.dll)

type WsdlService<ServiceUri : string,
                 ?LocalSchemaFile : string,
                 ?ForceUpdate : bool
                 ?MessageContract : bool,
                 ?EnableDataBinding : bool,
                 ?Serializable : bool,
                 ?Async : bool,
                 ?CollectionType : string>

Statikähnliche Parameter

Typparameter

Description

ServiceUri: Zeichenfolge

Der URI für den Webdienst.

? LocalSchemaFile: Zeichenfolge

Eine lokal zu speichern .wsdlschema-Datei, Dienstschema verwendet wird.

? ForceUpdate: bool

Erfordert, dass ein, direkte Verbindung zum Dienst zur Entwurfszeit verfügbar ist und erzwingt die Aktualisierung der lokalen Schemadatei.Der Standardwert ist "True".Wenn ForceUpdate falsch, antwortet der Anbieter auf Änderungen in LocalSchemaFile.

? MessageContract: bool

Wenn true, Meldungsvertragstypen generiert.Der Standardwert ist false.

? EnableDataBinding: bool

Wenn true, die generierten Datenvertragstypen die INotifyPropertyChanged-Schnittstelle implementieren, um die Datenbindung zu ermöglichen.

? Serialisierbar: bool

Wenn true, die erstellten Typen serialisierbar sind.Die Standardeinstellung ist false.Wenn dieses festgelegt wird, um auszurichten, haben die generierten serialisierbare Typen das Attribut angewendet.

? Async: bool

Wenn true, die synchronen und asynchronen Methodensignaturen generiert.Der Standardwert ist false.

? CollectionType: Zeichenfolge

Ein vollqualifizierter oder durch die Assembly qualifizierter Name des Typs als Auflistungsdatentyp zu verwenden, wenn Code aus den Schemas generiert wird.

Hinweise

Eine exemplarische Vorgehensweise, die zeigt, wie Sie diesen Typanbieter, finden Exemplarische Vorgehensweise: Zugreifen auf einen Webdienst mithilfe von Typanbietern (F#) verwendet.

Informationen über WSDL

WSDL ist eine XML-basierte Sprache für die Beschreibung von Webdiensten.Webdienstexposémethodenaufrufe oder Funktionsaufrufe über ein Netzwerk und, im - WSDL, Internet.WSDL wird Diensten verwendet, um eine Beschreibung der Funktionsaufrufe bereitzustellen, die für den Dienst und den Typen der zugeordneten Daten verfügbar sind.Der WSDL-Typanbieter können Sie zu den Verwendungsdatentypen von jedem WSDL-Dienst sofort im Code, ohne den üblichen zusätzliche Aufwand durch das sie jeden Dienst zu.

Ein WSDL-Dokument enthält die Beschreibung für einen Webdienst.WSDL-Dokumente sind im XML-Format und enthalten Definitionen der Schnittstellen und der Operationen, die bereitgestellt werden, Meldungen und die Datentypen, die verwendet werden, und Informationen zur Netzwerkfunktionsendpunkte, wie den URI, die Anschlüsse, und die verwendeten Protokolle.Ein WSDL-Dokument verfügt über zwei Hauptbaugruppen, die abstrakten Definitionen der Schnittstellen, deren Typen, Vorgänge und Meldungen und der Bindungen.

WSDL verbindet, werden auch als portTypes, Gruppierungen von Vorgängen.Vorgänge sind wie Methoden auf einer Schnittstelle.Vorgänge, wie Methoden, können Parameter und Rückgabewerte haben.Die Vorgänge sind im WSDL-Dokument in einer abstrakten Form beschrieben, die nicht im Protokoll verwendeten spezifisch ist.Der Bindungen des WSDL-Dokuments beschreibt, wie die Schnittstellen als Webdienste, durch einen bestimmten Endpunkt oder Port und Protokoll verfügbar gemacht werden.Das Protokoll, das mit WSDL verwendet wird, ist in der Regel SOAP (Simple Object Access-Protokoll) über HTTP.Das SOAP-Protokoll stellt eine Methode des Codierens von objektorientierten Typen und Methoden.

WSDL 2,0 ist eine leistungsstarke Überarbeitung des WSDL-Protokolls.

Weitere Informationen finden Sie unter, Verständniswsdl.

Neben den WSDL-Typanbieter

Der WSDL-Typanbieter ermöglicht das Programm für einen Webdienst mit einem Satz von automatisch generierten Typen.Im Hintergrund führt der Compiler svcutil.exe aus, um Typen zu generieren, die Sie verwenden können, um auf den Webdienst zuzugreifen.Sie werden generiert, indem der Typanbieter in F#-Code für den Dienst deklariert.Die folgenden Codezeilen verdeutlichen dies:

 
type terraService = WsdlService<"http://www.terraserver-usa.com/TerraServer2.asmx?WSDL">
let terraClient = terraService.GetTerraServiceSoap ()

Das Dienstobjekt blendet die Details des SOAP-Protokolls aus und setzt die Funktionalität des Webservers Clientcode aus.Das Dienstobjekt auch als SOAP-client, da der Auftrag, mit dem Server interagieren ist, indem er das SOAP-Protokoll verwendet, um Webdienstvorgänge aufzurufen.Es ist analog den Typen, die erstellt werden, indem wsdl.exe ausführt und erbt von ClientBase<TChannel>.Die Clientobjekte enthalten nicht nur die geerbten Methoden der Basisklasse jedoch auch die Internet-Methoden, die vom Webdienst bereitgestellt werden.

Die statischen Argumente DataContractOnly, EnableDataBinding, MessageContract, Async, CollectionType und DataContractSerializer beeinflussen die Befehlszeilenargumente mit ähnlichen Namen versehen svcutil.exe.Weitere Informationen zu den Auswirkungen dieser Argumente, finden Sie unter ServiceModel Metadata Utility Tool (Svcutil.exe).Die Typen, die für den Dienst benötigt werden, werden unter dem WsdlService-Typ mit ServiceTypes generiert.

Sie müssen einen Verweis auf die Assembly System.ServiceModel hinzufügen, um den WsdlService-Typanbieter zu verwenden.Sie könnten auch System.Runtime.Serialization.

Die Typen, die für Internet-Methoden verwendet werden, werden in einer Reihe von geschachtelten Typen mit ServiceTypes enthalten.

Beispiel

Das folgende Beispiel zeigt, wie der WsdlService-Typanbieter verwendet, um eine Methode für einen Webdienst aufzurufen in diesem Fall die TerraServer Site, die von Microsoft Research veröffentlicht wird.

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

  

Plattformen

Windows 8, Windows 8, Windows 7, Windows Server 2012, Windows Server 2008 R2

Versionsinformationen

F#-Kern-Bibliotheks-Versionen

Unterstützt in: 2,0, 4,0, portablen

Siehe auch

Aufgaben

Exemplarische Vorgehensweise: Zugreifen auf einen Webdienst mithilfe von Typanbietern (F#)

Referenz

Microsoft.FSharp.Data.TypeProviders-Namespace (F#)

Weitere Ressourcen

ServiceModel Metadata Utility Tool (Svcutil.exe)