WsdlService — Typ dostawcy (F#)
Zawiera typy dla usługi sieci web w języku WSDL (Web Services Description Language).
Przestrzeń nazw/Ścieżka modułu: Microsoft.FSharp.Data.TypeProviders
Zestaw: FSharp.Data.TypeProviders (w FSharp.Data.TypeProviders.dll)
type WsdlService<ServiceUri : string,
?LocalSchemaFile : string,
?ForceUpdate : bool
?MessageContract : bool,
?EnableDataBinding : bool,
?Serializable : bool,
?Async : bool,
?CollectionType : string>
Parametry typu statycznego
Typ parametru |
Opis |
---|---|
Usługa URI : ciąg |
Identyfikator URI dla usługi sieciowej. |
?LocalSchemaFile : ciąg |
Plik .wsdlschema do przechowywania lokalnego schematu usług buforowanych. |
?ForceUpdate : bool |
Wymaga dostępności bezpośredniego połączenia z usługą w czasie projektowania i wymuszenia odświeżania lokalnego pliku schematu.Wartość domyślna to true.Gdy ForceUpdate ma wartość false, dostawca reaguje na zmiany w LocalSchemaFile. |
?MessageContract: bool |
Jeśli true, generuje typy kontraktu komunikatu.Wartością domyślną jest false. |
?EnableDataBinding : bool |
Jeśli ma wartość true, wygenerowane typy kontraktu danych implementują interfejs INotifyPropertyChanged pozwalający na powiązanie danych. |
?Możliwy do serializacji: bool |
Jeśli true, generowane są typy możliwe do serializacji.Wartość domyślna to false.Jeśli ustawiono na wartość true, wygenerowane typy mają zastosowany atrybut Serializable. |
?Async : bool |
Jeśli true, generuje podpisy obu metod synchroniczne i asynchroniczne.Wartością domyślną jest false. |
?CollectionType: ciąg |
W pełni kwalifikowana lub kwalifikowana zestawem nazwa typu do zastosowania jako typ danych kolekcji podczas generowania kodu ze schematów. |
Uwagi
Aby uzyskać informacje na temat instruktażu, który pokazuje, jak używać tego dostawcy typu, zobacz Wskazówki: uzyskiwanie dostępu do usługi sieci Web za pomocą dostawców typów (F#).
Informacje o WSDL
WSDL jest oparty na standardzie XML języka opisu usługi sieci web.Usługi sieci Web narażają wywołania metody lub wywołania funkcji przez sieć, a w przypadku WSDL, przez Internet.WSDL jest używany przez usługi do przedstawienia opisu wywołań funkcji dostępnych na usługę i typy skojarzonych danych.Dostawca typu WSDL umożliwia natychmiastowe używanie typów danych w dowolnej usłudze WSDL w kodzie, bez zwykłych kłopotów z tworzeniem ich dla każdej usługi.
Dokument WSDL zawiera opis usługi sieci web.Dokumenty WSDL są w formacie XML i zawierają definicje interfejsów i oferowanych operacji, użyte wiadomości i typy danych oraz informacje dotyczące sieci punktów końcowych, takich jak identyfikatory URI, porty i protokoły używane.Dokument WSDL zawiera dwie główne części, definicje abstrakcyjne interfejsów, ich typy, operacje i wiadomości oraz sekcję wiązania.
Interfejsy WSDL, znane również jako portTypes, to grupy działań.Operacje są podobne do metod w danym interfejsie.Operacje, takie jak metody, mogą mieć parametry i zwracać wartości.Czynności są opisane w dokumencie WSDL w formie abstrakcyjnej, która nie jest określona dla używanego protokołu.W sekcji wiązania dokumentu WSDL opisano, jak interfejsy są dostępne jako usługi sieci web, za pośrednictwem określonego punktu końcowego, lub portu i protokołu.Protokół używany z WSDL jest zazwyczaj protokołem SOAP (Simple Object Access Protocol) nad protokołem HTTP.Protokół SOAP stanowi sposób kodowania zorientowanych obiektowo typów i metod.
WSDL 2.0 jest istotną korektą protokołu WSDL.
Aby uzyskać więcej informacji, zobacz Zrozumienie WSDL.
Informacje o dostawcy typu WSDL
Dostawca WSDL typu umożliwia programowanie usługi sieci web z zestawem typów generowanych automatycznie.Za kulisami kompilator uruchamia svcutil.exe do generowania typów, które można użyć do uzyskania dostępu do usługi sieci web.Są one generowane przez zadeklarowanych dostawców typu w F# kodzie usługi.Następujące wiersze kodu przedstawiają to:
type terraService = WsdlService<"http://www.terraserver-usa.com/TerraServer2.asmx?WSDL">
let terraClient = terraService.GetTerraServiceSoap ()
Obiekt usługi ukrywa szczegóły protokołu SOAP i udostępnia funkcje serwera sieci web kodom klienta.Obiekt usługi jest nazywany klientem SOAP, ponieważ jego zadaniem jest interakcja z serwerem przy użyciu protokołu SOAP do wywoływania operacji usługi sieci web.Jest to analogiczne do typów utworzonych przez uruchomienie wsdl.exe i dziedziczenie z ClientBase.Obiekty klienta zawierają nie tylko metody dziedziczone od swojej klasy bazowej, ale także metody sieci web udostępniane przez usługę sieci web.
Argumenty statyczne DataContractOnly, EnableDataBinding, MessageContract, Async, CollectionType, i DataContractSerializer wpływają na na argumenty wiersza polecenia o podobnych nazwach, biorąc pod uwagę svcutil.exe.Aby uzyskać więcej informacji na temat znaczenia tych argumentów, zobacz Narzędzie do obsługi metadanych elementu ServiceModel (Svcutil.exe).W obszarze są generowane typy wymagane przez usługę WsdlService wpisz pod ServiceTypes.
Należy dodać odwołanie do zestawu System.ServiceModel , aby używać WsdlService dostawcy typu.Może być również konieczne System.Runtime.Serialization.
Typy, które są używane dla metody sieci web znajdują się w serii zagnieżdżonych typów pod ServiceTypes.
Przykład
Poniższy przykład pokazuje, jak używać WsdlService typu dostawcy do wywołania metody usługi sieci web, w tym przypadku, TerraServe witryna opublikowana przez 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
Dane wyjściowe
Platformy
Windows 8Windows 8, Windows 7, Windows Server 2012, Windows Server 2008 R2
Informacje o wersji
Wersje podstawowe biblioteki języka F#
Obsługiwane przez: 2.0, 4.0, przenośne
Zobacz też
Zadania
Wskazówki: uzyskiwanie dostępu do usługi sieci Web za pomocą dostawców typów (F#)
Informacje
Microsoft.FSharp.Data.TypeProviders — Przestrzeń nazw (F#)
Koncepcje
Narzędzie do obsługi metadanych elementu ServiceModel (Svcutil.exe)