Provedor de tipo de WsdlService (F#)
Fornece tipos para um serviço de WSDL (linguagem de descrição) a Web serviços Web.
Namespace/Module Path: Microsoft.FSharp.Data.TypeProviders
Assembly: FSharp.Data.TypeProviders (em FSharp.Data.TypeProviders.dll)
type WsdlService<ServiceUri : string,
?LocalSchemaFile : string,
?ForceUpdate : bool
?MessageContract : bool,
?EnableDataBinding : bool,
?Serializable : bool,
?Async : bool,
?CollectionType : string>
Parâmetros de tipo estáticos
Parâmetro de tipo |
Descrição |
---|---|
ServiceUri: cadeia de caracteres |
A URL para o serviço da Web. |
? LocalSchemaFile: cadeia de caracteres |
Um arquivo de .wsdlschema para serem armazenados em cache localmente o esquema de serviço. |
? ForceUpdate: bool |
Requer que uma conexão direta para o serviço está disponível em tempo de design e forçar a atualização local do arquivo de esquema.O padrão é verdadeira.Quando ForceUpdate é falso, o provedor reage a alterações em LocalSchemaFile. |
? MessageContract: bool |
Se true, gera tipos do contrato de mensagem.o valor padrão é false. |
? EnableDataBinding: bool |
Se sim, os tipos gerados do contrato de dados implementam a interface de INotifyPropertyChanged para habilitar associação de dados. |
? Serializável: bool |
Se true, os tipos gerados é serializável.O padrão é false.Se isso for definida como true, os tipos gerados têm o atributo de Serializável aplicado. |
? Async: bool |
Se true, gera síncronos e assinaturas de método assíncrono.o valor padrão é false. |
? CollectionType: cadeia de caracteres |
Um nome totalmente qualificado ou de tipo qualificado para usar como um tipo de dados de coleção quando o código é gerado de esquemas. |
Comentários
Para uma explicação passo a passo que mostra como usar esse provedor do tipo, considere Passo a passo: Acessando um serviço da Web usando provedores de tipo (F#).
Sobre WSDL
WSDL é uma linguagem baseado em XML para descrever serviços da Web.Chamadas ou chamadas de função do método de exibição de serviços da Web em uma rede e, no caso de WSDL, a Internet.WSDL é usado pelos serviços para fornecer uma descrição de chamadas de função disponíveis no serviço e tipos de dados associados.O provedor do tipo de WSDL permite que você use os tipos de dados do serviço de WSDL imediatamente em seu código, sem a sobrecarga comum de criá-los para cada serviço.
Um documento de WSDL contém a descrição de um serviço da Web.Documentos de WSDL estão no formato XML e contém definições de interfaces e as operações oferecidas, as mensagens e os tipos de dados usados, e informações sobre pontos de extremidade de rede, como os URI, as portas, e os protocolos utilizados.Um documento de WSDL tem duas seções principais, as definições abstratas interfaces, seus tipos, operações, e mensagens, e a seção de associações.
WSDL interfaces, também conhecido como portTypes, é agrupamentos das operações.Operações são como métodos em uma interface.As operações, como métodos, podem ter parâmetros e valores de retorno.Operações são descritas no documento de WSDL em um formulário abstrata que não seja específico para o protocolo usado.A seção associações de documento de WSDL descreve como interfaces são expostos como serviços da Web, através de um ponto de extremidade específico, ou porta e protocolo.O protocolo usado com WSDL é normalmente SOAP (protocolo simples de acesso do objeto) sobre HTTP.O protocolo SOAP fornece uma maneira de código tipos orientados a objeto e métodos.
WSDL 2,0 é uma revisão significativa de protocolo de WSDL.
Para mais informações, consulte WSDL compreensivo.
Sobre o provedor de tipo de WSDL
O provedor do tipo de WSDL permite que você programar em um serviço da Web com um conjunto de tipos gerados automaticamente.Em os bastidores, o compilador executa svcutil.exe para gerar os tipos que você pode usar para acessar o serviço da Web.São gerados pelo provedor de tipo no código de F# para o serviço.As seguintes linhas de código ilustram isto:
type terraService = WsdlService<"http://www.terraserver-usa.com/TerraServer2.asmx?WSDL">
let terraClient = terraService.GetTerraServiceSoap ()
O objeto de serviço oculta os detalhes de protocolo SOAP e expõe a funcionalidade da web server para o código do cliente.O objeto de serviço é conhecido como um cliente SOAP porque seu trabalho é interagir com o servidor usando o protocolo SOAP para chamar operações de serviço da Web.É análogo aos tipos criados em execução e wsdl.exe herda de ClientBase<TChannel>.Os objetos de cliente não contêm somente os métodos herdados de sua classe base mas também os métodos da Web fornecidos pelo serviço da Web.
Os argumentos DataContractOnlyestáticos, EnableDataBinding, MessageContract, Async, CollectionType, e afetam de DataContractSerializer os argumentos de linha de comando com os nomes dados semelhantes a svcutil.exe.Para obter mais informações sobre o efeito de esses argumentos, consulte ServiceModel Metadata Utility Tool (Svcutil.exe).Os tipos necessários para o serviço são gerados no tipo de WsdlService em ServiceTypes.
Você deve adicionar uma referência ao assembly System.ServiceModel para usar o provedor do tipo de WsdlService .Você também pode precisar System.Runtime.Serialization.
Tipos que são usados para os métodos da Web são incluídos em uma série de tipos aninhados em ServiceTypes.
Exemplo
O exemplo a seguir mostra como usar o provedor do tipo de WsdlService para chamar um método em um serviço da Web, em esse caso, TerraServer o site publicado pela 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
Saída
Plataformas
Windows 8, windows 8, Windows 7, Windows Server 2012, Windows Server 2008 R2
Informações de Versão
Versões da biblioteca principal de F#
Suportado em: 2,0, 4,0, portáteis
Consulte também
Tarefas
Passo a passo: Acessando um serviço da Web usando provedores de tipo (F#)
Referência
Microsoft.FSharp.Data.TypeProviders Namespace (F#)