Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
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
Windows Communication Foundation Örnekleri içinOne-Time Kurulum Yordamını yaptığınızdan emin olun.
adresine
http://localhost/ServiceModelSamples/ComplexTypeClientPage.aspxgidin (ComplexTypeClientPage.aspx proje dizininden tarayıcıda açmayın).