2014-04-30 7 views
2

C# API의 기능을 번역하려고 시도하고 있으며 자신감있는 솔루션을 찾을 수없는 코드가 있습니다.Java에 상응하는 C#의 HttpContext.Current.Items.set/get

데이터를 올바른 웹 컨텍스트 범위에 저장하는 것과 관련이 있습니다. 현재로서는 HashMap을 작성하여 문제를 해결할 수 있었지만이 시점에 저장된 데이터에 대한 확장 된 필요성을 알지 못했기 때문에이 작업을 올바르게 수행하려고 노력했습니다. 동일한 시도를하는 자바 솔루션을 찾기 위해 필자는 이전에 알지 못했던 범위, 즉 플래시 스코프를 발견했습니다. 그것은 HttpContext.Current.Items와 같은 것 같지만, 이것에 대한 두 번째 의견을 분명히 고맙게 생각합니다. flashScope는 내가 playframework에서 발견 한 것입니다.

또한 HttpContext.Current.Items는 정적 인 방법으로 액세스되는 것처럼 보이지만 java는 일반적으로 HttpSession과 같은 범위 클래스의 객체 인스턴스를 만듭니다.

아래의 C# 코드처럼 오브젝트를 범위가 지정된 사전에 정적으로 저장할 수 있습니까? 플래시 범위가 HttpContext.Current.Items과 동일합니까? Play Framework없이 Flash Scope에 액세스 할 수 있습니까?

언제나 그렇듯이 나는 잘못된 가정이나 다른 오해가 있었는지 잘 알고 있습니다.

감사합니다 :)

C#을 방법

public void setItem(String itemName, Object item) { 

     HttpContext.Current.Items.set(itemName, item);  
    } 

답변

1

HttpServletRequestsetattribute() 방법이있다.

+0

그리고'HttpServletRequest'는'HttpContext.Current'와 동일합니까? – KjetilNordin

+0

죄송합니다,이 답변에는 두 개의 upvotes가 있지만, 나는 그것을 downvote하려고합니다. 그것은 원격으로 질문에 대답하지 않습니다. 어떤 설명없이 클래스가 메서드를 가지고있는 한 줄을 버리면 질문에서 요구하는 것과 거의 거리가 멀다. – KjetilNordin

+0

안녕하세요. 나는 너를 도우려고 노력한다.그러나 제발, 태도가 차이를 만듭니다. 당신은 동등한 것이 아니라 동등한 것을 요구했습니다. Java와 C#은 서로 다른 언어입니다. 'HttpServletRequest'는 'HttpServletResponse'와 함께 사용됩니다. 모든 Java 서블릿에는 서버가 주입 한 변수가 있습니다. 나는 당신이 더 의심 스러울 경우 세심한주의를 기울입니다. – ferchoman09

0

이 페이지는 주제에 대한 유용한 정보를 많이 제공 : 가장 중요한 라인 중 http://odetocode.com/articles/111.aspx

은 다음과 같습니다

HttpContext 개체는 하나의 HTTP 요청의 구체적인 세부 사항을 캡슐화합니다. 이 클래스의 속성에는 Request 개체, 응답 개체, 세션 개체 및 현재 요청 중에 이 Exception 개체 배열을 유지하는 AllErrors 속성이 포함됩니다.

...

현재는 현재 HTTP 요청에 대한 HttpContext 개체 를 반환하는 정적 속성입니다. 정적 방법으로 액세스하지만 당신은 Items의 요청에 대해 의 모든 개체에서

데이터를 실행의 논리 스레드를 현재 사용할 수있는, 하나의 요청에 범위가된다. 즉, javas HttpServletRequest와 그 메소드 getAttribute()setAttribute()을 사용하면 변환 된 프레임 워크가 응용 프로그램에서 사용되기에 충분하다고 가정하는 것이 논리적입니다.