Procedure: Service-instancing beheren
Als u de instantiemodus van een service instelt, kunt u opgeven wanneer een System.ServiceModel.InstanceContext (en het bijbehorende door de gebruiker gedefinieerde serviceobject) wordt gemaakt. Bekijk de InstanceContextMode opsomming voor de mogelijke modi. Zie De runtime configureren en uitbreiden met gedrag voor meer informatie over gedrag. Zie Gedrag voor werkvoorbeelden.
De levensduur van het service-exemplaar beheren met behulp van code
Pas de ServiceBehaviorAttribute serviceklasse toe.
Stel de InstanceContextMode eigenschap in op een van de volgende waarden: PerCall, PerSessionof Single.
[ServiceBehaviorAttribute(InstanceContextMode = InstanceContextMode.PerCall)]
<ServiceBehaviorAttribute(InstanceContextMode:=InstanceContextMode.PerCall)> _ Public Class CalculatorService
Opmerking
In het volgende codevoorbeeld wordt de InstanceContextMode eigenschap van het ServiceBehaviorAttribute kenmerk ingesteld op PerCall.
// Define a service contract.
[ServiceContract(Namespace = "http://Microsoft.ServiceModel.Samples")]
public interface ICalculator
{
[OperationContract]
double Add(double n1, double n2);
[OperationContract]
double Subtract(double n1, double n2);
[OperationContract]
double Multiply(double n1, double n2);
[OperationContract]
double Divide(double n1, double n2);
}
// Service class which implements the service contract.
[ServiceBehaviorAttribute(InstanceContextMode = InstanceContextMode.PerCall)]
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;
}
}
' Define a service contract.
<ServiceContract([Namespace]:="http://Microsoft.ServiceModel.Samples")> _
Public Interface ICalculator
<OperationContract()> _
Function Add(ByVal n1 As Double, ByVal n2 As Double) As Double
<OperationContract()> _
Function Subtract(ByVal n1 As Double, ByVal n2 As Double) As Double
<OperationContract()> _
Function Multiply(ByVal n1 As Double, ByVal n2 As Double) As Double
<OperationContract()> _
Function Divide(ByVal n1 As Double, ByVal n2 As Double) As Double
End Interface
' Service class which implements the service contract.
<ServiceBehaviorAttribute(InstanceContextMode:=InstanceContextMode.PerCall)> _
Public Class CalculatorService
Implements ICalculator
Public Function Add(ByVal n1 As Double, ByVal n2 As Double) As Double _
Implements ICalculator.Add
Return n1 + n2
End Function
Public Function Subtract(ByVal n1 As Double, ByVal n2 As Double) As Double _
Implements ICalculator.Subtract
Return n1 - n2
End Function
Public Function Multiply(ByVal n1 As Double, ByVal n2 As Double) As Double _
Implements ICalculator.Multiply
Return n1 * n2
End Function
Public Function Divide(ByVal n1 As Double, ByVal n2 As Double) As Double _
Implements ICalculator.Divide
Return n1 / n2
End Function
End Class