InstanceContextMode Enum
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
Hiermee geeft u het aantal service-exemplaren op dat beschikbaar is voor het verwerken van aanroepen die zijn opgenomen in binnenkomende berichten.
public enum class InstanceContextMode
public enum InstanceContextMode
type InstanceContextMode =
Public Enum InstanceContextMode
- Overname
Velden
| Name | Waarde | Description |
|---|---|---|
| PerSession | 0 | Er wordt een nieuw InstanceContext object gemaakt voor elke sessie. Als het kanaal geen sessie maakt, gedraagt deze waarde zich alsof dit het geval is PerCall. |
| PerCall | 1 | Er wordt een nieuw InstanceContext object gemaakt vóór en gerecycled na elke aanroep. |
| Single | 2 | Er wordt slechts één InstanceContext object gebruikt voor alle binnenkomende oproepen en wordt niet gerecycled na de aanroepen. Als er geen serviceobject bestaat, wordt er een gemaakt. |
Voorbeelden
De volgende code illustreert hoe u de InstanceContextMode voor een serviceklasse instelt:
// 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
Opmerkingen
De System.ServiceModel.InstanceContext klasse beheert de koppeling tussen het kanaal en de door de gebruiker gedefinieerde serviceobjecten. Gebruik de InstanceContextMode opsomming met de ServiceBehaviorAttribute.InstanceContextMode eigenschap om de levensduur van het InstanceContext object op te geven. Windows Communication Foundation (WCF) kan een nieuw InstanceContext-object maken voor elke aanroep, elke sessie of opgeven dat het InstanceContext-object is gebonden aan één serviceobject. Zie Instancing voor een werkend voorbeeld.
De Single waarde geeft aan dat één InstanceContext object moet worden gebruikt voor de levensduur van de service. Er zijn verschillende opmerkingen gekoppeld aan de Single waarde:
Als de ServiceBehaviorAttribute.InstanceContextMode waarde is ingesteld op
Single, kan uw service slechts één bericht tegelijk verwerken, tenzij u de ConcurrencyMode waarde ook instelt op ConcurrencyMode.Multiple.Voor het gedrag van singleton-levensduur (bijvoorbeeld als de hosttoepassing de ServiceHost.ServiceHost constructor aanroept en een object doorgeeft dat als de service moet worden gebruikt), moet de serviceklasse zijn ingesteld ServiceBehaviorAttribute.InstanceContextMode
Singleop , of er wordt een uitzondering gegenereerd wanneer de servicehost wordt geopend.