Sunday, 1 August 2010

4.Service Contract

ServiceContract özelliği kullanılarak bir sınıfın veya interface'in servis olarak kullanılacağı belirtilir. Bu servis bir web servis, bir MSMQ servisi, n-tier uygulamalardaki herhangi bir servis katmanı olabilir.

Service Contract'da servisin kuracağı mesajlaşma şekli (Message Exchange Pattern) tanımlanır. Request/Reply,One-Way,Duplex olarak tanımlama yapılabilir.

Örnek olarak bir öğrenci sınıfımız olsun. Bu sınıfta Ad ve Soyad propertyleri tanımlayalım. Öğrenci numarasına göre Ad ve Soyad'ı birlikte döndüren bir fonksiyonumuz olsun:


class Ogrenci
{
int no;
string Ad;
string Soyad;

public string OgrenciGetir(int no)
{
return Ad+" "+Soyad;
}
}


Bu sınıfı servis olarak kullanabilmek için bir interface tanımlarız. Interface'i Servis olarak kullanacağımızı belirtmek için interface'in başına ServiceContract attribute'unu ekleriz. Peki, bu sınıfta hangi metodları kullanacağımızı serviste nasıl belirteceğiz? O metodların başına OperationContract attribute'unu koyarak:


[ServiceContract]
interface IOgrenci
{
[OperationContract]
public string OgrenciGetir(int no)

}


Artık Sınıfımızın servis olarak kullanılabilmesi için tek yapmamız gereken bu interface'i implement etmek.


class Ogrenci:IOgrenci
{
int no;
string Ad;
string Soyad;

public string OgrenciGetir(int no)
{
return Ad+" "+Soyad;
}

}

No comments:

Post a Comment