Aracılığıyla paylaş


Karmaşık Türleri Kullanan AJAX Hizmeti Örneği

ComplexTypeAjaxService örneği, karmaşık türlerin örneklerini oluşturan ve bunları hizmet ile istemci arasında JavaScript Nesne Gösterimi (JSON) olarak gönderen ASP.NET Zaman Uyumsuz JavaScript ve XML (AJAX) hizmeti oluşturmak için Windows Communication Foundation'ın (WCF) nasıl kullanılacağını gösterir. Web tarayıcısı istemcisinden JavaScript kodu kullanarak AJAX hizmetine erişebilirsiniz. Bu örnek Temel AJAX Hizmeti örneğini temel alır.

WCF'deki AJAX desteği, denetim aracılığıyla ScriptManager ASP.NET AJAX ile kullanım için iyileştirilmiştir. WCF'yi ASP.NET AJAX ile kullanma örneği için bkz. AJAX Örnekleri.

Uyarı

Bu örnek için kurulum yordamı ve derleme yönergeleri bu konunun sonunda yer alır.

Aşağıdaki örnekteki hizmet, AJAX'a özgü kod içermeyen bir WCF hizmetidir. WebGetAttribute Öznitelik uygulanmadığından, varsayılan HTTP fiili ("POST") kullanılır. Hizmetin, DoMath adlı karmaşık bir tür döndüren MathResult adlı tek bir işlemi vardır. Karmaşık tür, AJAX'a özgü kod içermeyen standart bir veri sözleşmesi türüdür.

[DataContract]
public class MathResult
{
    [DataMember]
    public double sum;
    [DataMember]
    public double difference;
    [DataMember]
    public double product;
    [DataMember]
    public double quotient;
}

Hizmette, Temel AJAX Hizmeti örneğinde olduğu gibi, WebScriptServiceHostFactory kullanarak bir AJAX uç noktası oluşturun.

İstemci Web sayfası ComplexTypeClientPage.aspx, kullanıcı sayfadaki Hesaplama yap düğmesine tıkladığında hizmeti çağırmak için ASP.NET ve JavaScript kodu içerir. Hizmeti çağırma kodu bir JSON gövdesi oluşturur ve HTTP POST Kullanarak AJAX Hizmeti örneğine benzer şekilde HTTP POST kullanarak gönderir.

Hizmet çağrısı başarılı olduktan sonra, sonuçta elde edilen JavaScript nesnesinde tek tek veri üyelerine (sum, differenceproduct ve quotient) erişebilirsiniz.

function onSuccess(mathResult){
     document.getElementById("sum").value = mathResult.sum;
     document.getElementById("difference").value = mathResult.difference;
     document.getElementById("product").value = mathResult.product;
     document.getElementById("quotient").value = mathResult.quotient;
}

Örneği ayarlamak, derlemek ve çalıştırmak için

  1. Windows Communication Foundation Örnekleri içinOne-Time Kurulum Yordamını yaptığınızdan emin olun.

  2. ComplexTypeAjaxService.sln çözümünü, Windows Communication Foundation Örneklerini Oluşturma bölümünde açıklandığı gibi oluşturun.

  3. adresine http://localhost/ServiceModelSamples/ComplexTypeClientPage.aspx gidin (ComplexTypeClientPage.aspx proje dizininden tarayıcıda açmayın).

Ayrıca bakınız