2010-07-16 5 views
1

나는 최대 usercontrols 만든 aspx 페이지 집합이 있습니다. 각 사용자 정의 컨트롤은 기본 클래스에서 상속됩니다. 그 기본 클래스에서 필자는 사용자 컨트롤에 액세스해야하는 몇 가지 공통 데이터 객체 (EF를 통해)를 배치하려고합니다. 이 작업을 효율적으로 수행하여 각 사용자 컨트롤이 동일한 클래스 인스턴스 또는 데이터 사본에 액세스하도록하려면 어떻게해야합니까?asp.net의 기본 클래스에 공유 데이터

답변

0

Singleton Per Request pattern을 사용할 수 있습니다. 요청 수명 동안 객체의 단일 인스턴스 만 사용할 수있게하려는 경우 유용합니다.

HttpContext.Items 컬렉션에 항목을 저장하면됩니다.

public class SingletonPerRequest 
{ 
    public static SingletonPerRequest Current 
    { 
     get 
     { 
      return (HttpContext.Current.Items["SingletonPerRequest"] ?? 
       (HttpContext.Current.Items["SingletonPerRequest"] = 
       new SingletonPerRequest())) as SingletonPerRequest; 

     } 
    } 
}