요청 및 세션 데이터에 대한 외관을 사용하여 확실히 수행 할 수 있습니다. 그러나 Request 또는 Session을 직접 호출하는 대신 Facade를 사용하도록 페이지의 모든 코드를 변경해야합니다.
별도의 스레드를 시작할 때 Request 및 Session에 대해 필요한 모든 정보를 저장하고 데이터베이스 또는 HttpRuntime.Cache에 저장하는 새 (사용자 지정) SessionData 개체를 만듭니다. 해당 개체의 식별자를 스레드에 전달하면 스레드가 사용할 SessionData 개체를 알 수 있습니다.
특수 작업자 스레드 인 경우 ID로 SessionFacade를 인스턴스화 할 수 있습니다. 그렇지 않으면 매개 변수없이 인스턴스를 생성하십시오.
다음은 시작 잘하면 충분히 얻으려면 SessionFacade의 예 :
우리의 특별한 경우
class SessionFacade
{
private string _threadID;
public SessionFacade() { }
public SessionFacade(string threadID)
{
this._threadID = threadID;
}
public object this[string key]
{
get
{
return this.GetData(key);
}
}
protected object GetData(string key)
{
if(!string.IsNullOrEmpty(this._threadID))
{
return ((SessionData)HttpRuntime.Cache[this._threadID])[key];
}
else
{
return Session[key];
}
}
}
왜 위키입니까? –
가 동일한 것을 궁금해하고 있었다. –
끌 수 있습니까? – Chris