반응형
메서드 내 변수 (로컬 변수): WCF 서비스의 메서드 내에 정의된 변수는 메서드가 호출되는 동안만 유지됩니다. 메서드가 실행되면 변수가 할당되고, 메서드 실행이 완료되면 해당 변수는 소멸합니다.
public class MyService : IMyService
{
public string GetData(int value)
{
int localVar = value * 2; // 로컬 변수
return localVar.ToString();
}
}
클래스 멤버 변수 (인스턴스 변수): WCF 서비스 클래스 내에 정의된 인스턴스 변수는 해당 서비스 인스턴스의 수명 동안 유지됩니다. 각 클라이언트 요청에 대해 새로운 서비스 인스턴스가 생성되므로, 클라이언트 요청 간에 인스턴스 변수의 값이 공유되지 않습니다.
public class MyService : IMyService
{
private int instanceVar = 0; // 인스턴스 변수
public string GetData(int value)
{
instanceVar += value;
return instanceVar.ToString();
}
}
static 변수: WCF 서비스 클래스 내에서 정의된 static 변수는 해당 클래스의 수명 동안 유지됩니다. 이 변수는 모든 서비스 인스턴스 간에 공유됩니다. 따라서 서비스 클래스의 모든 인스턴스가 동일한 static 변수를 참조하게 됩니다.
public class MyService : IMyService
{
private static int staticVar = 0; // static 변수
public string GetData(int value)
{
staticVar += value;
return staticVar.ToString();
}
}
요약하면, WCF 서비스 내에서 정의된 변수의 수명은 변수가 정의된 위치와 변수의 범위에 따라 결정됩니다. 로컬 변수는 메서드 범위 내에서, 인스턴스 변수는 해당 서비스 인스턴스의 수명 동안, 그리고 static 변수는 해당 클래스의 수명 동안 유지됩니다.
반응형
'Language > C#' 카테고리의 다른 글
C# 버전별 새기능 (0) | 2023.02.10 |
---|