2011-01-19 15 views

उत्तर

20

Nhibernate स्रोत कोड से:

private void Dispose(bool isDisposing) 
{ 
    using (new SessionIdLoggingContext(base.SessionId)) 
    { 
     if (!base.IsAlreadyDisposed) 
     { 
      log.Debug(string.Format("[session-id={0}] executing real Dispose({1})", base.SessionId, isDisposing)); 
      if (!(!isDisposing || base.IsClosed)) 
      { 
       this.Close(); 
      } 
      base.IsAlreadyDisposed = true; 
      GC.SuppressFinalize(this); 
     } 
    } 
} 

तो निपटान विधि Close() कहता है। Close() या Dispose() विधियों को कॉल करना सत्र को बंद कर देगा जिससे आप इसके साथ काम करने की अनुमति न दें।

7

कॉलिंग session.Close() सत्र बंद कर देगा लेकिन ऑब्जेक्ट का निपटान नहीं करेगा।

session.Dispose() (आमतौर पर उपयोग करने वाले ब्लॉक के उपयोग के माध्यम से) कॉलिंग सत्र को बंद कर देगा और साथ ही साथ Dispose() के अतिरिक्त संचालन भी करेगा।

संबंधित मुद्दे