Поставщик типов 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)