Referensi Objek
Sampel ObjectReferences menunjukkan cara meneruskan objek berdasarkan referensi antara server dan klien. Sampel menggunakan jejaring sosial yang disimulasikan. Jejaring sosial terdiri dari kelas Person
yang berisi daftar teman di mana setiap teman adalah instans kelas Person
, dengan daftar temannya sendiri. Ini membuat grafik objek. Layanan ini mengekspos operasi di jejaring sosial ini.
Dalam sampel ini, layanan dihosting oleh Layanan Informasi Internet (IIS) dan klien adalah aplikasi konsol (.exe).
Catatan
Prosedur penyiapan dan petunjuk pembuatan untuk sampel ini terdapat di akhir topik ini.
Layanan
Kelas Person
memiliki atribut DataContractAttribute yang diterapkan, dengan bidang IsReference diatur ke true
untuk mendeklarasikannya sebagai jenis referensi. Semua properti memiliki atribut DataMemberAttribute yang diterapkan.
[DataContract(IsReference=true)]
public class Person
{
string name;
string location;
string gender;
int age;
List<Person> friends;
[DataMember()]
public string Name
{
get { return name; }
set { name = value; }
}
[DataMember()]
public string Location
{
get { return location; }
set { location = value; }
}
[DataMember()]
public string Gender
{
get { return gender; }
set { gender = value; }
}
…
}
Operasi GetPeopleInNetwork
ini mengambil parameter jenis Person
dan mengembalikan semua orang dalam jaringan; yaitu, semua orang dalam daftar friends
, teman dari teman, dan sebagainya, tanpa duplikat.
public List<Person> GetPeopleInNetwork(Person p)
{
List<Person> people = new List<Person>();
ListPeopleInNetwork(p, people);
return people;
}
Operasi GetMutualFriends
ini mengambil parameter jenis Person
dan mengembalikan semua teman dalam daftar yang juga memiliki orang ini dalam daftar friends
mereka.
public List<Person> GetMutualFriends(Person p)
{
List<Person> mutual = new List<Person>();
foreach (Person friend in p.Friends)
{
if (friend.Friends.Contains(p))
mutual.Add(friend);
}
return mutual;
}
Operasi GetCommonFriends
ini mengambil daftar jenis Person
. Daftar ini diharapkan memiliki dua objek Person
di dalamnya. Operasi mengembalikan daftar objek Person
yang ada dalam daftar friends
kedua objek Person
dalam daftar input.
public List<Person> GetCommonFriends(List<Person> people)
{
List<Person> common = new List<Person>();
foreach (Person friend in people[0].Friends)
if (people[1].Friends.Contains(friend))
common.Add(friend);
return common;
}
Klien
Proksi klien dibuat menggunakan fitur Tambahkan Referensi Layanan Visual Studio.
Jejaring sosial yang terdiri dari lima objek Person
dibuat. Klien memanggil masing-masing dari tiga metode dalam layanan.
Untuk menyiapkan, membangun, dan menjalankan sampel
Pastikan Anda telah melakukan Prosedur Penyiapan Satu Kali untuk Sampel Windows Communication Foundation.
Untuk membangun solusi edisi C# atau Visual Basic .NET, ikuti petunjuknya di Membangun Sampel WCF.
Untuk menjalankan sampel dalam konfigurasi satu atau lintas komputer, ikuti instruksi pada Menjalankan Sampel WCF.