InstanceContextMode Enum
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
Menentukan jumlah instans layanan yang tersedia untuk menangani panggilan yang terkandung dalam pesan masuk.
public enum class InstanceContextMode
public enum InstanceContextMode
type InstanceContextMode =
Public Enum InstanceContextMode
- Warisan
Bidang
| Nama | Nilai | Deskripsi |
|---|---|---|
| PerSession | 0 | Objek baru InstanceContext dibuat untuk setiap sesi. Jika saluran tidak membuat sesi, nilai ini berulah seolah-olah itu PerCalladalah . |
| PerCall | 1 | Objek baru InstanceContext dibuat sebelum dan didaur ulang berikutnya ke setiap panggilan. |
| Single | 2 | Hanya satu InstanceContext objek yang digunakan untuk semua panggilan masuk dan tidak didaur ulang berikutnya ke panggilan. Jika objek layanan tidak ada, objek akan dibuat. |
Contoh
Kode berikut mengilustrasikan cara mengatur InstanceContextMode untuk kelas layanan:
// Service class which implements the service contract.
[ServiceBehavior(InstanceContextMode=InstanceContextMode.PerSession)]
public class CalculatorService : ICalculator
{
public double Add(double n1, double n2)
{
return n1 + n2;
}
public double Subtract(double n1, double n2)
{
return n1 - n2;
}
public double Multiply(double n1, double n2)
{
return n1 * n2;
}
public double Divide(double n1, double n2)
{
return n1 / n2;
}
}
' Service class which implements the service contract.
Public Class CalculatorService
Implements ICalculator
Public Function Add(n1 As Double, n2 As Double) As Double Implements ICalculator.Add
Return n1 + n2
End Function
Public Function Subtract(n1 As Double, n2 As Double) As Double Implements ICalculator.Subtract
Return n1 - n2
End Function
Public Function Multiply(n1 As Double, n2 As Double) As Double Implements ICalculator.Multiply
Return n1 * n2
End Function
Public Function Divide(n1 As Double, n2 As Double) As Double Implements ICalculator.Divide
Return n1 / n2
End Function
End Class
Keterangan
Kelas System.ServiceModel.InstanceContext mengelola hubungan antara saluran dan objek layanan yang ditentukan pengguna.
InstanceContextMode Gunakan enumerasi dengan ServiceBehaviorAttribute.InstanceContextMode properti untuk menentukan masa InstanceContext pakai objek. Windows Communication Foundation (WCF) dapat membuat objek baru InstanceContext untuk setiap panggilan, setiap sesi, atau menentukan bahwa InstanceContext objek terikat ke satu objek layanan. Untuk contoh kerja, lihat Instancing.
Nilai Single menentukan bahwa satu InstanceContext objek harus digunakan untuk masa pakai layanan. Beberapa peringatan dikaitkan dengan Single nilai :
ServiceBehaviorAttribute.InstanceContextMode Jika nilai diatur ke
Single, layanan Anda hanya dapat memproses satu pesan pada satu waktu kecuali Anda juga mengatur nilai ke ConcurrencyModeConcurrencyMode.Multiple.Untuk perilaku seumur hidup singleton (misalnya, jika aplikasi host memanggil ServiceHost.ServiceHost konstruktor dan meneruskan objek untuk digunakan sebagai layanan), kelas layanan harus diatur ServiceBehaviorAttribute.InstanceContextMode ke
Single, atau pengecualian dilemparkan saat host layanan dibuka.