2011-03-15 3 views
4

웹 서비스에 대한 각 호출에서 이러한 변수의 내용을 사용할 수 있도록 웹 서비스 C# 클래스의 생성자에서 일부 정적 변수를 초기화 할 수 있는지 알고 싶습니다. 예를 들어, 데이터베이스에서 일부 데이터를로드하고 웹 메소드에서 사용하려고합니다. 이러한 정적 변수는 읽기 전용입니다. 이 값은 한 번만로드됩니다. 또는 웹 메서드가 호출 될 때마다 생성자가 실행됩니까?웹 서비스에서 정적 변수를 초기화하는 방법

답변

8

예, 모든 요청은 웹 서비스 클래스의 새 인스턴스를 생성합니다.

그러나 일부 정적 필드를 초기화하는 정적 생성자를 사용할 수 있습니다. 이 필드는 모든 사용자와 웹 서비스의 모든 요청에 ​​공통적으로 적용됩니다.

public class WebService1 : System.Web.Services.WebService 
{ 

    public static int loadedFromDataBase; 

    static WebService1() 
    { 
     loadedFromDataBase = ... 
    } 

    [WebMethod] 
    public string HelloWorld() 
    { 
     return loadedFromDataBase.ToString(); 
    } 
} 
+0

개체는 데이터베이스 연결처럼 풀링되지 않습니다. 아니면 그들을 풀 수있는 방법이 있습니까? 또는 메소드가 실행될 때마다로드되지 않도록 변수를 다른 곳에서 선언 할 수 있습니까? –

+3

loadedFromDataBase는 매번로드되지 않고 한 번만로드되며 모든 요청에 ​​의해 공유됩니다. – SWeko

관련 문제