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 gérer les appels contenus dans les messages entrants.
public enum class InstanceContextMode
public enum InstanceContextMode
type InstanceContextMode =
Public Enum InstanceContextMode
- Héritage
Champs
PerCall | 1 | Un objet InstanceContext est créé avant et recyclé après chaque appel. |
PerSession | 0 | Un objet InstanceContext est créé pour chaque session. Si le canal ne crée pas de session, cette valeur se comporte comme si elle était PerCall. |
Single | 2 | Un seul objet InstanceContext est utilisé pour tous les appels entrants et il n'est pas recyclé après les appels. S'il n'existe aucun objet de service, le système en crée un. |
Exemples
L'exemple de code ci-dessous montre comment définir le InstanceContextMode pour une 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 propriété ServiceBehaviorAttribute.InstanceContextMode pour spécifier la durée de vie de l'objet InstanceContext. Windows Communication Foundation (WCF) peut créer un objet InstanceContext 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 valeur Single
spécifie qu'un objet InstanceContext unique doit être utilisé pendant toute 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
Single
sur , 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 du singleton (par exemple, si l'application hôte appelle le constructeur ServiceHost.ServiceHost et passe un objet à utiliser en tant que service), la classe de service doit affecter à ServiceBehaviorAttribute.InstanceContextMode la valeur
Single
ou une exception est levée à l'ouverture de l'hôte de service.