ASP.NET 웹 사이트에서 각 웹 요청에 고유 한 정적 클래스가 있습니까? 아니면 GC가 처리하기로 결정할 때마다 필요할 때마다 인스턴스화되고 GC됩니다.
내가 묻는 이유는 C #에서 정적 클래스를 작성했기 때문에 예상했던 것과 동작이 다르기 때문입니다. 정적 클래스가 각 요청마다 고유 할 것으로 예상했지만 그럴 것 같지는 않습니다.
각 요청에 고유하지 않은 경우 요청을 허용 할 수있는 방법이 있습니까?
업데이트 :
driis가 내게 준 대답은 정확히 내가 필요한 것입니다. 나는 이미 싱글 톤 클래스를 사용하고 있었지만 정적 인스턴스를 사용하고 있었으므로 사용자가 다르더라도 요청간에 공유되고 있었지만이 경우 나쁜 것입니다. 를 사용하면 HttpContext.Current.Items
내 문제가 완벽하게 해결됩니다. 미래 에이 질문에 걸려 넘어지는 사람에게는 패턴을 이해하기 쉽도록 구현과 단순화 및 단축이 있습니다.
using System.Collections;
using System.Web;
public class GloballyAccessibleClass
{
private GloballyAccessibleClass() { }
public static GloballyAccessibleClass Instance
{
get
{
IDictionary items = HttpContext.Current.Items;
if(!items.Contains("TheInstance"))
{
items["TheInstance"] = new GloballyAccessibleClass();
}
return items["TheInstance"] as GloballyAccessibleClass;
}
}
}
filterContext.Result = new RedirectResult(...)
하면 새 HttpContext가 만들어지기 때문에 항목이 손실됩니다. 자세한 내용은 여기 : stackoverflow.com/questions/16697601/…