2011-05-14 3 views
0

현재 내 DomainService는 클라이언트가 연결될 때마다 리소스 초기화를 수행합니다. 모든 클라이언트는이 자원의 동일한 인스턴스에 액세스해야합니다. WebService 시작 프로그램에서이 리소스를 초기화하고 싶습니다. WCF Ria Services와 함께 할 수 있습니까?WCF Ria DomainService - 시작시 WebService 초기화

편집 : 좋아요, 언급하지 마십시오. 전역 DbContext 개체에이 메서드를 사용하고 싶습니다. DbContext에 동시에 액세스하는 HttpApplication에 의해 관리되는 여러 스레드가 있기 때문에 이것은 좋은 아이디어가 아닙니다. 내 구현을 "per Thread"로, 각각 "HttpContext"방식으로 바꿀 것입니다. 어쨌든 고마워.

답변

1

해당 리소스에 대한 정적 속성이 포함 된 클래스를 정의 할 수 있습니다. 그런 다음 DomainService에서 해당 속성에 액세스 할 수 있습니다. 그런 다음 처음 액세스 할 때만 초기화됩니다.

예 : DomainService에서

public class ResManager { 
    public static MyObject {...} 
} 

:

public IQueryable<SomeClass> GetSomeObjects() 
{ 
    // you can access it here and it will not be initialized 
    // every time the DomainService is called 
    MyObject obj = ResManager.MyObject; 
    return new List<SomeClass>().AsQueryable(); 
} 

는 서비스가 시작될 때 초기화 할 경우는, 당신은 할 수 있어야 그 Global 클래스이다.

+0

정적 DbContext 개체를 사용하여이 작업을 시도했습니다. 이제로드 오류가 발생합니다. "DbContext가 삭제되었습니다." DbContext 생성자와 소멸자에 대한 호출을 확인했습니다. 응용 프로그램이 종료되기 전에 마지막 응용 프로그램이 호출되지 않습니다. 무슨 일 이니? – 0xbadf00d

+0

내 첫 글을 업데이트했습니다. – 0xbadf00d

관련 문제