InstanceContextMode Énumération
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Spécifie le nombre d’instances de service disponibles pour la gestion des appels contenus dans les messages entrants.
public enum class InstanceContextMode
public enum InstanceContextMode
type InstanceContextMode =
Public Enum InstanceContextMode
- Héritage
Champs
| Nom | Valeur | Description |
|---|---|---|
| PerSession | 0 | Un nouvel InstanceContext objet est créé pour chaque session. Si le canal ne crée pas de session, cette valeur se comporte comme si elle était PerCall. |
| PerCall | 1 | Un nouvel InstanceContext objet est créé avant et recyclé après chaque appel. |
| Single | 2 | InstanceContext Un seul objet est utilisé pour tous les appels entrants et n’est pas recyclé suite aux appels. S’il n’existe pas d’objet de service, un objet est créé. |
Exemples
Le code suivant montre comment définir la InstanceContextMode classe de service :
// 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
Remarques
La System.ServiceModel.InstanceContext classe gère l’association entre le canal et les objets de service définis par l’utilisateur. Utilisez l’énumération InstanceContextMode avec la ServiceBehaviorAttribute.InstanceContextMode propriété pour spécifier la durée de vie de l’objet InstanceContext . Windows Communication Foundation (WCF) peut créer un InstanceContext objet pour chaque appel, chaque session ou spécifier que l’objet InstanceContext est lié à un seul objet de service. Pour obtenir un exemple de travail, consultez Instanciation.
La Single valeur spécifie qu’un seul InstanceContext objet doit être utilisé pour la durée de vie du service. Plusieurs mises en garde sont associées à la Single valeur :
Si la ServiceBehaviorAttribute.InstanceContextMode valeur est définie
Singlesur , votre service ne peut traiter qu’un seul message à la fois, sauf si vous définissez également la ConcurrencyMode valeur ConcurrencyMode.Multiplesur .Pour le comportement de durée de vie singleton (par exemple, si l’application hôte appelle le ServiceHost.ServiceHost constructeur et transmet un objet à utiliser comme service), la classe de service doit être définie ServiceBehaviorAttribute.InstanceContextMode
Singlesur , ou une exception est levée lorsque l’hôte de service est ouvert.