InstanceContextMode 열거형
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
들어오는 메시지에 포함된 호출을 처리할 수 있는 서비스 인스턴스 수를 지정합니다.
public enum class InstanceContextMode
public enum InstanceContextMode
type InstanceContextMode =
Public Enum InstanceContextMode
- 상속
필드
PerCall | 1 | 새 InstanceContext 개체는 매번 호출하기 전에 만들어지고 매번 호출한 후에 재활용됩니다. |
PerSession | 0 | 각 세션마다 새 InstanceContext 개체가 만들어집니다. 채널에서 세션을 만들지 않으면 이 값은 PerCall인 것처럼 동작합니다. |
Single | 2 | 하나의 InstanceContext 개체만 들어오는 모든 호출에 대해 사용되며 호출 후에는 재활용되지 않습니다. 서비스 개체가 없는 경우 새로 만들어집니다. |
예제
다음 코드에서는 서비스 클래스에 대해 InstanceContextMode를 설정하는 방법을 보여 줍니다.
// 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
설명
클래스는 System.ServiceModel.InstanceContext 채널과 사용자 정의 서비스 개체 간의 연결을 관리합니다. InstanceContextMode
속성이 있는 ServiceBehaviorAttribute.InstanceContextMode 열거형을 사용하여 InstanceContext 개체의 수명을 지정합니다. Windows Communication Foundation(WCF)은 모든 호출, 모든 세션에 대해 새 InstanceContext 개체를 만들거나 개체가 단일 서비스 개체에 바인딩되도록 InstanceContext 지정할 수 있습니다. 작업 예제는 Instancing을 참조하세요.
Single
값은 서비스의 수명에 대해 단일 InstanceContext 개체가 사용되도록 지정합니다. 다음과 같은 몇 가지 주의 사항이 값과 Single
연결됩니다.
값이 ServiceBehaviorAttribute.InstanceContextMode 설정
Single
되면 값을 설정하지 않는 한 ConcurrencyMode 서비스에서 한 번에 하나의 메시지만 처리할 ConcurrencyMode.Multiple수 있습니다.Singleton 수명 동작(예: 호스트 응용 프로그램이 ServiceHost.ServiceHost 생성자를 호출하고 서비스로 사용할 개체를 전달하는 경우)에 대해서는 서비스 클래스에서 ServiceBehaviorAttribute.InstanceContextMode를
Single
로 설정해야 합니다. 그렇지 않으면 서비스 호스트를 열 때 예외가 throw됩니다.