Aracılığıyla paylaş


WsdlService türü sağlayıcı (F#)

Türler için wsdl (Web Hizmetleri Açıklama Dili) web hizmeti sağlar.

Ad alanı/modül yolu: Microsoft.FSharp.Data.TypeProviders

Derleme: 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>

Statik tür parametreleri

Tür parametresi

Description

ServiceUri: dize

Web hizmeti için URI.

?LocalSchemaFile: dize

Yerel olarak önbelleğe alınan hizmet şema depolamak için bir .wsdlschema dosyası.

?ForceUpdate: bool

Hizmetine doğrudan bağlantı tasarım zamanı ve zorla yerel şema dosyasının yenileme sırasında kullanılabilir olmasını gerektirir. Varsayılan doğrudur. Zaman ForceUpdate sağlayıcı tepki verir değişikliklere yanlış LocalSchemaFile.

?MessageContract: bool

true, İleti sözleşme türleri oluşturur. false varsayılan değerdir.

?EnableDataBinding: bool

TRUE, üretilen veri sözleşme türleri uygulamak, INotifyPropertyChanged veri bağlama etkinleştirmek için arabirim.

?Seri hale getirilebilir: bool

true, Üretilen türü seri hale getirilebilir. Varsayılan, false değeridir. Bu ayarlanırsa true, üretilen türler uygulanan seri hale getirilebilir özniteliğine sahip.

?Zaman uyumsuz: bool

true, Her iki zaman uyumlu ve zaman uyumsuz yöntem imzaları oluşturur. false varsayılan değerdir.

?CollectionType: dize

Koleksiyon veri türü şemalara kodu üretilirken kullanılacak türünün tam olarak nitelenmiş veya derleme nitelikli adı.

Notlar

İzlenecek bu tür sağlayıcısının nasıl kullanılacağını gösteren bir yol için bkz: İzlenecek yol: Web hizmeti sağlayıcıları türü (F#) kullanarak erişme.

wsdl hakkında

wsdl, web hizmetleri açıklayan bir xml tabanlı dildir. Web Hizmetleri, ağ üzerinden ve wsdl, Internet söz konusu olduğunda yöntem çağrıları veya işlev çağrıları açarsınız. wsdl Hizmetleri tarafından hizmet ve ilişkili veri türleri kullanılabilir işlev çağrıları için bir açıklama sağlamak için kullanılır. wsdl türü sağlayıcı veri türlerinden herhangi bir wsdl hizmeti hemen her zamanki bindirmeden her hizmet için oluşturma kodunuzda kullanmanıza olanak sağlar.

wsdl belgesinde bir web hizmeti açıklamasını içerir. wsdl belgeleri xml biçiminde ve arabirim tanımlarını içeren ve işlemleri sunulan, iletileri ve kullanılan veri türlerini ve URI'ları, bağlantı noktaları ve kullanılan iletişim kuralları gibi ağ bitiş noktaları hakkında bilgi. wsdl belgesinde iki ana kısımları, arabirimleri, bunların türlerini, işlemleri ve iletileri ve bindings bölümünü soyut tanımları vardır.

wsdl arabirimi olarak da bilinen portTypes işlemlerinin gruplandırmaları olan. Bir arabirimde yöntemleri gibi operasyonlardır. Yöntemleri gibi işlemleri parametrelere sahiptir ve dönüş değerleri. İşlemleri wsdl belgesinde kullanılan protokole özgü değil soyut bir biçimde açıklanmıştır. wsdl belgesinde bindings bölümünü nasıl belirli bitiş noktası veya bağlantı noktası ve iletişim kuralı aracılığıyla web hizmetleri olarak sergilenen arabirimleri açıklar. wsdl ile kullanılan genellikle soap (Basit Nesne Erişim Protokolü) http üzerinden protokolüdür. soap protokolünün nesne yönelimli türleri ve yöntemleri kodlama bir yol sağlar.

wsdl 2.0 wsdl Protokolü'nün önemli bir değişiklik olur.

Daha fazla bilgi için Anlama wsdl.

wsdl türü sağlayıcısı hakkında

wsdl türü sağlayıcı programa karşı otomatik oluşturulan türleri kümesi olan bir web hizmeti sağlar. Derleyici arka planda çalışan svcutil.exe web hizmetine erişmek için kullanabileceğiniz türlerini oluşturmak için. Bunlar kodunda F# hizmet türü sağlayıcı bildirerek üretilir. Aşağıdaki kod satırlarını bu gösterilmektedir:

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

Servis nesnesi soap protokolünün ayrıntılarını gizler ve web sunucusuna istemci kodu işlevlerini kullanıma sunar. Web hizmet işlemleri çağırmak için soap protokolünü kullanarak sunucuyla etkileşim kurmak için kendi işi olduğu için hizmeti nesnesi, soap istemci de denir. Wsdl.exe çalıştırılmasıyla oluşturulan türleri paraleldir ve devraldığı ClientBase<TChannel>. İstemci nesneleri yalnızca kendi temel sınıfından devralınan yöntemleri aynı zamanda web hizmeti tarafından sağlanan web yöntemlerini içerir.

Statik değişkenler DataContractOnly, EnableDataBinding, MessageContract, Async, CollectionType, ve DataContractSerializer komut satırı bağımsız değişkeni için verilen benzer adlara sahip etkileyen svcutil.exe. Bu bağımsız değişkenler etkisi hakkında daha fazla bilgi için bkz: ServiceModel Metadata Utility Tool (Svcutil.exe). Servis için gereken türler altında üretilen WsdlService altında yazın ServiceTypes.

Bir derleme başvuru eklemelisiniz System.ServiceModel kullanmak için WsdlService türü sağlayıcı. Ayrıca gerek duyabileceğiniz System.Runtime.Serialization.

İç içe geçmiş türleri altında bir dizi web metotları için kullanılan türleri dahil ServiceTypes.

Örnek

Aşağıdaki örnek, nasıl kullanılacağını gösterir WsdlService bir web hizmetinde, bu durumda, bir yöntemi çağırmak için sağlayıcı türü TerraServer sitesinde yayımlanan Microsoft Research tarafından.

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

Çıktı

  

Platformlar

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

Sürüm Bilgisi

F# Çekirdek Kitaplığı sürümleri

Desteklenen: 2.0, 4.0, Portable

Ayrıca bkz.

Görevler

İzlenecek yol: Web hizmeti sağlayıcıları türü (F#) kullanarak erişme

Başvuru

Microsoft.FSharp.Data.TypeProviders ad alanı (F#)

Diğer Kaynaklar

ServiceModel Metadata Utility Tool (Svcutil.exe)