Поделиться через


Поставщик типов WsdlService (F#)

Предоставляет типы для веб-службы язык WSDL (язык WSDL).

Путь пространства имен или модуля. Microsoft.FSharp.Data.TypeProviders

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

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

Статические параметры типа

Параметр типа

Описание

ServiceUri: строка

Универсальный код ресурса (URI) для веб-службы.

? LocalSchemaFile: строка

Файл .wsdlschema для хранения локально кэшированной схемы службы.

? ForceUpdate: bool

Требует непосредственное отношение к службе доступно во время разработки и принудительное обновление локального файла схемы. Значение по умолчанию — true. Значение ForceUpdate, если поставщик реагирует на изменения в LocalSchemaFile.

? MessageContract. bool

Если true, создает типы контрактов сообщений. Значение по умолчанию — false.

? EnableDataBinding: bool

Если значение true, созданные типы контрактов данных реализуют интерфейс INotifyPropertyChanged, чтобы включить привязку данных.

? Сериализуемый: bool

Если true, созданные сериализуемые значения. Значение по умолчанию — false. Если это значение true, созданные типы имеют применение атрибута сериализуемыми.

? Async. bool

Если true, создается и синхронные и асинхронные сигнатуры метода. Значение по умолчанию — false.

? CollectionType: строка

Полное или ввести имя типа сборки, используемое в качестве типа данных коллекции, когда код создается из схем.

Заметки

Пошаговое руководство, использование данного поставщика типа см. в разделе Пошаговое руководство. Доступ к веб-службе с помощью поставщиков типов (F#).

Об инструкции WSDL

Язык WSDL (основанный на XML язык для описания веб-службы. Вызовы метода или вызовы функций предоставлять веб-службы по сети и, в случае язык WSDL, интернет. Язык WSDL используется службами для предоставления описание вызовов функций, доступных в службе и соответствующих типов данных. Поставщик типа на языке WSDL позволяет использовать с типами данных из любой язык WSDL службы непосредственно в коде, не обычной нагрузки их создания для каждой службы.

Документ на языке WSDL содержит описание веб-службы. Документы на языке WSDL в формате XML и содержат определения предлагаемых интерфейсов и операций, используемые сообщений и типы данных и сведения о конечных точках сети, например Ресурсов, используемых портов и протоколов. Документ на языке WSDL 2 имеет основного раздела, абстрактные определения интерфейсов, их типы, операции и сообщения и раздел привязок.

Интерфейсы язык WSDL, также известные как portTypes, группы операций. Операций, методы интерфейса. Операции, как и методы, могут иметь параметры и возвращаемые значения. Операции описаны в документе один язык WSDL в форме, которая не относится к используемому протоколу. Раздел привязок документа язык WSDL описание интерфейсов представляются как веб-службы, с помощью конкретную конечную точку, или порт и протокол. Протокол, используемый на языке WSDL обычно протокол SOAP (протокол SOAP) по протоколу HTTP. Протокол SOAP предоставляет способ кодирования объектно-ориентированные типы и методы.

Язык WSDL 2.0 значительно редакции протокола на языке WSDL.

Дополнительные сведения см. Основные сведения о языке WSDL.

О поставщик типов языка WSDL.

Поставщик типа на языке WSDL позволяет в программу для веб-службы с набором автоматически созданных типов. В фоновом режиме, компилятор выполняет svcutil.exe для создания типов, которые могут использоваться для доступа к веб-службе. Они создаются путем объявления поставщика типа в коде F# для службы. Следующие строки кода иллюстрируют это:

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

Объект службы скрывает сведения протокола SOAP и предоставляет функциональные возможности веб-сервера для клиентского кода. Объект службы — клиент протокол SOAP, так как его задания взаимодействия с сервером по протоколу SOAP для вызова операций веб-службы. Он аналогичн к типам создан путем запуска wsdl.exe и наследует от класса ClientBase. Клиентские объекты не содержат только методы, унаследованные от базового класса, а также методы Интернета, предоставляемые веб-службой.

Статические аргументы DataContractOnly, EnableDataBinding, MessageContract, Async, CollectionType и DataContractSerializer влияют аргументы командной строки с одинаковыми именами, указанного в svcutil.exe. Дополнительные сведения о влиянии этих аргументов см. в разделе Служебное средство ServiceModel Metadata Utility Tool (Svcutil.exe). Типы необходимы для службы создаются в тип WsdlService в разделе ServiceTypes.

Необходимо добавить ссылку на сборку System.ServiceModel для использования поставщика типа WsdlService. Кроме того, System.Runtime.Serialization.

Типы, используемые для методов Интернета включаются в виде последовательности вложенных типов в ServiceTypes.

Пример

В следующем примере показано, как использовать поставщик типа WsdlService для вызова метода в веб-службе, в этом случае сайт TerraServer публикованный исследованием Майкрософт.

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

  

Платформы

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

Сведения о версии

Основные версии библиотеки F#

Поддерживается в версиях 2.0, 4.0, портативное

См. также

Задачи

Пошаговое руководство. Доступ к веб-службе с помощью поставщиков типов (F#)

Ссылки

Пространство имен Microsoft.FSharp.Data.TypeProviders (F#)

Основные понятия

Служебное средство ServiceModel Metadata Utility Tool (Svcutil.exe)