InstanceContextMode Enumeráció
Definíció
Fontos
Egyes információk olyan, kiadás előtti termékekre vonatkoznak, amelyek a kiadásig még jelentősen módosulhatnak. A Microsoft nem vállal kifejezett vagy törvényi garanciát az itt megjelenő információért.
Megadja a bejövő üzenetekben található hívások kezelésére rendelkezésre álló szolgáltatáspéldányok számát.
public enum class InstanceContextMode
public enum InstanceContextMode
type InstanceContextMode =
Public Enum InstanceContextMode
- Öröklődés
Mezők
| Name | Érték | Description |
|---|---|---|
| PerSession | 0 | Minden munkamenethez létrejön egy új InstanceContext objektum. Ha a csatorna nem hoz létre munkamenetet, ez az érték úgy viselkedik, mintha az lenne PerCall. |
| PerCall | 1 | A rendszer minden hívás előtt létrehoz egy új InstanceContext objektumot, és azokat újra hasznosítják. |
| Single | 2 | A rendszer csak egy InstanceContext objektumot használ az összes bejövő híváshoz, és a hívásokat követően nem lesz újra felhasználva. Ha egy szolgáltatásobjektum nem létezik, létrejön egy. |
Példák
Az alábbi kód bemutatja, hogyan állíthatja be a InstanceContextMode szolgáltatásosztályt:
// 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
Megjegyzések
Az System.ServiceModel.InstanceContext osztály kezeli a csatorna és a felhasználó által definiált szolgáltatásobjektumok közötti társításokat. Az objektum élettartamának megadásához használja az InstanceContextMode enumerálást a ServiceBehaviorAttribute.InstanceContextModeInstanceContext tulajdonsággal. Windows kommunikációs alaprendszer (WCF) létrehozhat egy új InstanceContext objektumot minden híváshoz, minden munkamenethez, vagy megadhatja, hogy a InstanceContext objektum egyetlen szolgáltatásobjektumhoz van-e kötve. Egy működő példa: Instancing.
Az Single érték azt határozza meg, hogy egyetlen InstanceContext objektumot kell használni a szolgáltatás teljes élettartama alatt. Az értékhez több kikötés is társítva Single van:
Ha az ServiceBehaviorAttribute.InstanceContextMode érték be van állítva
Single, a szolgáltatás egyszerre csak egy üzenetet tud feldolgozni, kivéve, ha ön is ezt az ConcurrencyMode értéket állítja ConcurrencyMode.Multiplebe.Egyszeri élettartam esetén (például ha a gazdaalkalmazás meghívja a ServiceHost.ServiceHost konstruktort, és átad egy szolgáltatásként használni kívánt objektumot), a szolgáltatásosztálynak be kell állítania ServiceBehaviorAttribute.InstanceContextMode
Single, vagy kivételt kell eredményeznie a szolgáltatás gazdagépének megnyitásakor.