WsdlService – poskytovatel typů (F#)
Poskytuje typy pro webovou službu WSDL (Web Services Description Language).
Obor názvů/cesta modulu: Microsoft.FSharp.Data.TypeProviders
Sestavení: FSharp.Data.TypeProviders (v FSharp.Data.TypeProviders.dll)
type WsdlService<ServiceUri : string,
?LocalSchemaFile : string,
?ForceUpdate : bool
?MessageContract : bool,
?EnableDataBinding : bool,
?Serializable : bool,
?Async : bool,
?CollectionType : string>
Parametry statického typu
Parametr typu |
Description |
---|---|
ServiceUri : řetězec |
Identifikátor URI pro webovou službu. |
?LocalSchemaFile : řetězec |
Soubor .wsdlschema pro místní ukládání schématu služby v mezipaměti. |
?ForceUpdate : bool |
Vyžaduje, aby bylo při návrhu k dispozici přímé připojení ke službě vynucuje aktualizaci místního souboru schématu.Výchozí hodnota je True.Když je ForceUpdate false, poskytovatel reaguje na změny v LocalSchemaFile. |
?MessageContract : bool |
Pokud true, generuje typy kontraktů zpráv.Výchozí hodnota je false. |
?EnableDataBinding : bool |
Pokud true, generované typy kontraktů dat implementují rozhraní INotifyPropertyChanged a povolují datové vazby. |
?Serializovatelný : bool |
Pokud true, jsou generované typy serializovatelné.Výchozí hodnota je false.Pokud je nastavena na hodnotu true, generované typy mají použit serializovatelný atribut. |
?Asynchronní: bool |
Pokud true, vygeneruje podpisy synchronní i asynchronní metody.Výchozí hodnota je false. |
?CollectionType: řetězec |
Plně kvalifikovaný nebo sestavením kvalifikovaný název typu pro použití jako datový typ kolekce při generování kódu ze schémat. |
Poznámky
Návod, který ukazuje, jak použít tento typ zprostředkovatele, viz Návod: Přístup k webové službě s použitím zprostředkovatelů typů (F#).
O WSDL
WSDL je jazyk na základě XML pro popis webových služeb.Webové služby vystavují volání metody nebo volání funkce po síti a v případě WSDL na Internetu.WSDL je používán službami k poskytnutí popisu volání funkce dostupných ve službě a přidružených datových typech.Poskytovatel typu WSDL vám umožňuje okamžitě použít datové typy z jakékoli služby WSDL ve vašem kódu bez obvyklé režie jejich vytvoření pro každou službu.
Dokument WSDL obsahuje popis webové služby.Dokumenty WSDL jsou ve formátu XML a obsahují definice nabídnutých rozhraní a operací, používané zprávy a datové typy a informace o koncových bodech sítě, například identifikátorech URI, portech a používaných protokolech.Dokument WSDL obsahuje dvě hlavní části, abstraktní definice rozhraní, jejich typy, operace, zprávy a části vazeb.
Rozhraní WSDL, označovaná také jako portTypes, jsou seskupení operací.Operace jsou jako metody na rozhraní.Operace, stejně jako metody, mohou mít parametry a vracet hodnoty.Operace jsou popsány v dokumentu WSDL v abstraktní podobě, která není specifická pro používaný protokol.Část vazby dokumentu WSDL popisuje, jak jsou rozhraní vystavena jako webové služby prostřednictvím určitého koncového bodu nebo portu a protokolu.Protokol používaný WSDL je obvykle SOAP (Simple Object Access Protocol) přes protokol HTTP.Protokol SOAP poskytuje způsob zakódování objektově orientovaných typů a metod.
WSDL 2.0 je podstatná revize protokolu WSDL.
Další informace naleznete v tématu Princip WSDL.
O poskytovateli typů WSDL
Poskytovatel typu WSDL vám umožňuje programovat proti webové službě se sadou automaticky vygenerovaných typů.Na pozadí spustí kompilátor svcutil.exe ke generování typů, které můžete použít pro přístup k webové službě.Jsou generovány deklarováním poskytovatele typu v kódu F# kód pro službu.Následující řádky kódu to dokládají.
type terraService = WsdlService<"http://www.terraserver-usa.com/TerraServer2.asmx?WSDL">
let terraClient = terraService.GetTerraServiceSoap ()
Objekt služby skrývá podrobnosti protokolu SOAP a zpřístupňuje funkci webového serveru klientskému kódu.Objekt služby je označován jako klient SOAP vzhledem k tomu, že jeho úkolem je spolupracovat se serverem použitím protokolu SOAP k volání operací webové služby.Je obdobou typů vytvořených spuštěním aplikace wsdl.exe a dědí z ClientBase.Klientské objekty obsahují nejen zděděné metody ze své základní třídy, ale také webové metody poskytované webovou službou.
Statické argumenty DataContractOnly, EnableDataBinding, MessageContract, Async, CollectionType a DataContractSerializer mají vliv na argumenty příkazové řádky s podobnými názvy danými svcutil.exe.Další informace o vlivu těchto argumentů naleznete v tématu Nástroj ServiceModel Metadata Utility (Svcutil.exe).Typy požadované pro službu jsou generovány pod typem WsdlService v ServiceTypes.
Je nutné přidat odkaz na sestavení System.ServiceModel pro použití zprostředkovatele typu WsdlService.Budete pravděpodobně potřebovat také System.Runtime.Serialization.
Typy, které se používají pro webové metody, jsou součástí řady vnořených typů v ServiceTypes.
Příklad
Následující příklad ukazuje, jak použít poskytovatele typu WsdlService pro volání metody na webovou službu, v tomto případě web TerraServer publikovaný webem 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
Výsledek
Platformy
Windows 8, Windows 8, Windows 7, Windows Server 2012, Windows Server 2008 R2
Informace o verzi
Verze základní knihovny F#
Podporováno ve verzích: 2.0, 4.0, Portable
Viz také
Úkoly
Návod: Přístup k webové službě s použitím zprostředkovatelů typů (F#)
Referenční dokumentace
Microsoft.FSharp.Data.TypeProviders – obor názvů (F#)