2009-01-24 9 views
5

में HttpContext.Current.Session के साथ एक क्लास का परीक्षण करना मैं एक कक्षा में कुछ परीक्षण जोड़ रहा हूं जो आंतरिक रूप से HttpContext.Current.Session का उपयोग करता है और हम एएसपी.नेट एमवीसी को पोर्ट कर रहे हैं। मेरी कक्षा इस तरह दिखता है:एएसपी.नेट एमवीसी

class Foo 
{ 
    public void foo() 
    { 
     HttpContext.Current.Session["foo"] = "foo"; 
    } 
} 

मैं इस तरह इसे बदलने के लिए सोचा:

class Foo 
{ 
    IHttpSessionState session; 

    public Foo() : this(HttpContext.Current.Session) {} 

    public Foo(IHttpSessionState session) 
    { 
     m_session = session; 
    } 

    public void foo() 
    { 
     m_session["foo"] = "foo"; 
    } 
} 

समस्या डिफ़ॉल्ट निर्माता के साथ है। मैं पुराने वर्गों को पार नहीं कर सकता क्योंकि वे नए एएसपी.नेट एमवीसी इंटरफेस को लागू नहीं करते हैं।

क्या वैसे भी ऐसे उदाहरण प्राप्त करने के लिए है जो डिफ़ॉल्ट कन्स्ट्रक्टर में IHttpSessionState को लागू करते हैं?

धन्यवाद

उत्तर

5

इस प्रयास करें, यह IHttpSessionState आवरण कि MVC फ्रेमवर्क का उपयोग करते इस्तेमाल किया।

class Foo 
{ 
    // member variable set by constructor 
    IHttpSessionState m_session; 

    // if no session is passed it attempts to create a new session state wrapper from the current session 
    public Foo() : this(new HttpSessionStateWrapper(HttpContext.Current.Session)) {} 

    public Foo(IHttpSessionState session) 
    { 
     m_session = session; 
    } 

    public void foo() 
    { 
     m_session["foo"] = "foo"; 
    } 
} 
संबंधित मुद्दे