Web Servis Session Kullanımı

ASP.NET Web Servislerinde Session Kullanımı

Web Servislerinde de diğer ASP.NET uygulamalarında olduğu gibi Session kullanılabilir. Buna bir web servis sınıfı içindeki herhangi bir web metotla başka bir sınıfa ait web metot arasında veri paylaşımı noktasında ihtiyaç duyulur. Aynı sınıfa ilişkin iki web metot arasında bilgi paylaşılacak ise sınıf faaliyet alanındaki uygun türde static bir veri elemanı yeterlidir. Örneğin :

Bireysel ve kurumsal ASP.NET eğitimleri için info@aykuttasdelen.net adresinden Aykut Taşdelen ile iletişim kurabilirsiniz

public class A : System.Web.Services.WebService {

private static int x = 0;

public A () {

}

[WebMethod]
public void Foo() {

x = 3;

}

[WebMethod]
public int Bar() {

return ++x;

}

}

Burada önce Foo() çağrılır sonra Bar() çağrılırsa sonuç 4 olacaktır. Tabii bunun x’in static olması gerekir aksi halde sonuç 1’dir. Öte yandan A::Foo() çağrımından sonra aşağıdaki gibi B::Zet() çağrımı yapılacaksa yani bu iki ayrı sınıfa ait web metot bilgi paylaşacaksa Session kullanımı kaçınılmazdır. Bu durumda sınıflar aşağıdaki gibi yazılmalıdır.

public class A : System.Web.Services.WebService {

private static int x = 0;

public A () {

}

[WebMethod(EnableSession=true)]
public void Foo() {

x = 3;

Session[“veri”] = 7;

}

[WebMethod]
public int Bar()
{

return ++x;

}

}

—————————————————

public class B : System.Web.Services.WebService {

public B () {

}

[WebMethod(EnableSession=true)]

public int Zet() {

            return Convert.ToInt32(Session[“veri”]) + 3;

}

}

Session sayesinde A::Foo() çağrımından sonra yapılacak olan B::Zet() çağrımında 10 değeri elde edilir.

Reklamlar