Compartilhar via


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#)

Outros recursos

ServiceModel Metadata Utility Tool (Svcutil.exe)