InstanceContextMode Sabit listesi
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
Gelen iletileri içeren çağrıları işlemek için kullanılabilecek hizmet örneklerinin sayısını belirtir.
public enum class InstanceContextMode
public enum InstanceContextMode
type InstanceContextMode =
Public Enum InstanceContextMode
- Devralma
Alanlar
PerCall | 1 | Her çağrıdan önce yeni InstanceContext bir nesne oluşturulur ve bundan sonra geri dönüştürülür. |
PerSession | 0 | Her oturum için yeni InstanceContext bir nesne oluşturulur. Kanal bir oturum oluşturmazsa, bu değer gibi PerCalldavranır. |
Single | 2 | Tüm gelen çağrılar için yalnızca bir InstanceContext nesne kullanılır ve çağrılardan sonra geri dönüştürülmez. Bir hizmet nesnesi yoksa, bir tane oluşturulur. |
Örnekler
Aşağıdaki kod, bir hizmet sınıfı için öğesinin InstanceContextMode nasıl ayarlandığını gösterir:
// 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
Açıklamalar
sınıfı, System.ServiceModel.InstanceContext kanal ile kullanıcı tanımlı hizmet nesneleri arasındaki ilişkiyi yönetir. nesnesinin InstanceContextMode
yaşam ömrünü belirtmek için özelliğiyle numaralandırmasını ServiceBehaviorAttribute.InstanceContextMode InstanceContext kullanın. Windows Communication Foundation (WCF), her çağrı, her oturum için yeni InstanceContext bir nesne oluşturabilir veya nesnenin InstanceContext tek bir hizmet nesnesine bağlı olduğunu belirtebilir. Çalışan bir örnek için bkz. Instancing.
değeri, Single
hizmetin ömrü boyunca tek InstanceContext bir nesnenin kullanılması gerektiğini belirtir. Değerle Single
ilişkili birkaç uyarı vardır:
ServiceBehaviorAttribute.InstanceContextMode değer olarak ayarlanırsa
Single
, değeri olarak ayarlamadığınız ConcurrencyMode ConcurrencyMode.Multiplesürece hizmetiniz bir kerede yalnızca bir iletiyi işleyebilir.Tek kullanım ömrü davranışı için (örneğin, konak uygulaması oluşturucuyu ServiceHost.ServiceHost çağırır ve hizmet olarak kullanmak üzere bir nesne geçirirse), hizmet sınıfı olarak
Single
ayarlanmalıdır ServiceBehaviorAttribute.InstanceContextMode veya hizmet konağı açıldığında bir özel durum oluşturulur.