XML Web Servisleri içerisinde kullanılan WebMethod lara verilen Attribute ler ile ilgili kısa açıklamalar :
BufferResponse : Web Servislerde default olarak true degerine sahip olan bu özellik Web Servis den kullanıcılara gönderilecek olan cevap öncelikle önbelleklensin sonra mı gönderilsin yoksa önbellekleme yapılmadan gönderilsin mi, bunun kararını verir. Gönderilen cevabın önbelleklenmesi mesajın bütününün hazırlanması ve sonra gönderilmesi anlamındadır.
CacheDuration : CacheDuration özelliği ASP.NET sitelerinden alışık olduğumuz önbellekleme yani cache işlemi için geçerlidir. Saniye cinsinden bir parametre ister.
[WebMethod(CacheDuration=120)] gibi
Yukarıda ki bildirim de web servis metotu 2 dakika boyunca kullanıcılara aynı cevabı verecektir. Ufak bir açıklama, gelen her parametre degerine göre ayrı bir cache otomatik olarak oluşturulacaktır.
Description: Açıklamaya gerek var mı J
EnableSession : Default değeri false olan bu özelliğin amacı webmethod içerisinde Session isimli nesnenin kullanılabilmesini sağlamaktır. Fakat bu özellikten faydalanırken Web Servislerinde ki stateless yapıdan dolayı Client uygulama üzerinde CookieContainer kullanılmalıdır. Örnek için bkz :
http://www.yazilimuzmani.com/Articles/Details.aspx?aId=1000000438
MessageName : MessageName özelliği ise Webservisler de Metot overloading yapmak istediginizde kullanmak zorunda kalacağınız bir özelliktir. Web Servisler de bir metotu overload ederseniz kurallara uygun olsa dahi, MessageName özelliğinin kullanılması gerektiğine dair bir hata alacaksınız. O yüzden kullanım aşağıdaki gibi olmalıdır.
[WebMethod(MessageName="HelloWorldSimple")]
public string HelloWorld() {
return "Hello World";
}
[WebMethod(MessageName="HelloWorldAdvanced")]
public string HelloWorld(string name)
{
return "Hello " + name;
}
TransactionOption : Web Servislere Transaction özelliğinin eklenmesi ile birlikte artık COM+ mantığına yakın bir şekilde Transaction yönetimi yapabiliyorsunuz.
[WebMethod(TransactionOption = TransactionOption.RequiresNew)]