次の方法で共有


WsdlService 型プロバイダー (F#)

Web サービス記述言語 (WSDL) Web サービスに型を提供します。

Namespace/Module Path: 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: [文字列]

Web サービスの URI。

か。LocalSchemaFile: [文字列]

ローカルに保存する .wsdlschema ファイルは、サービスのスキーマをキャッシュします。

か。ForceUpdate: [bool]

サービスへの直接接続をデザイン時に使用できるようにする、ローカル スキーマ ファイルの更新を強制します。既定値は true です。ForceUpdate が false の場合、プロバイダーは LocalSchemaFileの変更に合わせてします。

か。MessageContract: [bool]

trueが、メッセージ コントラクト タイプを生成します。既定値 false です。

か。EnableDataBinding: [bool]

true の場合、生成されるデータのコントラクトは実装にデータ バインディングを有効にするに INotifyPropertyChanged のインターフェイスを入力します。

か。Serializable: [bool]

trueが、生成されたシリアル化可能な型の場合は。既定値は、false です。これが true に設定されている場合、生成された型に適用されているシリアル化可能な属性があります。

か。非同期操作: [bool]

trueが、同期的および非同期メソッドの定義を生成します。既定値 false です。

か。CollectionType: [文字列]

コードがスキーマから生成する場合のコレクションのデータ型として使用できる型またはアセンブリの完全修飾名。

解説

この種類のプロバイダーを使用する方法について チュートリアル : 型プロバイダーを使用した Web サービスへのアクセス (F#)を示すチュートリアルについて。

WSDL について

WSDL は、Web サービスを記述するための XML ベースの言語です。ネットワークと、WSDL の場合、インターネット上で Web サービスが公開するメソッドの呼び出しまたは呼び出し関数。サービスによって WSDL がサービスと関連付けられたデータ型で使用できる関数呼び出しの記述を提供するために使用されます。WSDL 型のプロバイダーは、各サービスのようにそれらの作成の通常のオーバーヘッドを付けずにコードで、WSDL サービスからのデータ型を、すぐに使用できるようになります。

WSDL ドキュメントは、Web サービスの説明が含まれています。WSDL ドキュメントは XML 形式にあり、用意されているインターフェイスの定義、操作、および情報は、使用する URI、ポートおよびネットワーク プロトコルなどの端点に関するメッセージとデータ型が含まれます。WSDL ドキュメントにインターフェイスの 2 種類の主要なセクションが、定義、抽象型、操作、およびメッセージと束縛セクションがあります。

WSDL はインターフェイスです (portTypes は、操作のグループです。操作をインターフェイスのメソッドと同様です。操作は、メソッドと同様に、パラメーターと戻り値を持つことができます。操作に使用されるプロトコルに固有ではない抽象フォームの WSDL ドキュメントで説明します。WSDL ドキュメントの束縛セクションは、インターフェイスを Web サービスとして、特定の端点によって、またはポートおよびネットワーク プロトコル公開する方法について説明します。WSDL で使用されるプロトコルは、通常、HTTP 経由でアクセス オブジェクト (SOAP 単純なプロトコル) です。SOAP プロトコルは、エンコーディング オブジェクト指向型およびメソッドの方法を提供します。

WSDL 2.0 は、WSDL プロトコルの重要な変更点です。

詳細については、WSDL の理解" " を参照してください。

WSDL 型のプロバイダーについて

WSDL 型のプロバイダーは、一連の自動生成された型を持つ Web サービスをプログラミングすることができます。背後では、コンパイラは Web サービスへのアクセスに使用できる型を生成するに svcutil.exe を実行します。これらは、サービスの F# コードの種類のプロバイダーの宣言によって生成されます。次のコード行を次に示します。:

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

サービスは、SOAP プロトコルの詳細を非表示にし、クライアント コードに Web サーバーの機能を公開します。サービスは、SOAP クライアントと Web サービスの操作を呼び出すにジョブが SOAP プロトコルを使用してサーバーとやりとりすることなので、呼ばれます。これは wsdl.exe を実行することによって作成された型に似ています ClientBase<TChannel>から継承します。クライアント オブジェクトは、基本クラスから継承されたメソッドのみを Web サービスで提供されて、Web メソッドが含まれています。

静的な引数 DataContractOnlyEnableDataBindingMessageContractAsyncCollectionTypeDataContractSerializer の影響 svcutil.exeに指定されるような名前のコマンド ライン引数。これらの引数の影響の詳細については、ServiceModel Metadata Utility Tool (Svcutil.exe)を参照してください。サービスに必要な型は ServiceTypesの下の WsdlService の型の下に生成されます。

WsdlService の型のプロバイダーを使用するに System.ServiceModel アセンブリへの参照を追加する必要があります。また System.Runtime.Serializationを必要とする場合があります。

Web メソッドに対して使用される型は ServiceTypesの下の一連の入れ子にされた型に含まれています。

使用例

次の例は、Web サービス メソッドを呼び出す場合、このために、TerraServerWsdlService の型のプロバイダーを使用する方法を 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

出力

  

プラットフォーム

Windows 8、Windows 8、Windows 7、Windows Server 2012 で Windows Server 2008 R2

バージョン情報

F# コア ライブラリのバージョン

サポート: ポータブル 2.0、4.0

参照

処理手順

チュートリアル : 型プロバイダーを使用した Web サービスへのアクセス (F#)

関連項目

Microsoft.FSharp.Data.TypeProviders 名前空間 (F#)

その他の技術情報

ServiceModel Metadata Utility Tool (Svcutil.exe)