2014-01-08 43 views
2

當使用Microsoft.Practices.EnterpriseLibrary.Data來避免泄漏時,我需要處置(並銷燬)?使用Microsoft.Practices.EnterpriseLibrary.Data時要處理什麼?

其實我的配置和DbCommandDataSet

VB.Net:

DataSet = DB.ExecuteDataSet(Command) 

'do something ... 

Command.Dispose() 
Command = Nothing 
DataSet.Dispose() 
DataSet = Nothing 

C#:

DataSet = DB.ExecuteDataSet(Command); 

//do something ... 

Command.Dispose(); 
Command = null; 
DataSet.Dispose(); 
DataSet = null; 

但是否足夠?

我需要銷燬SqlDatabase嗎?那麼DbConnection呢?

+0

我編輯了代碼。由於代碼複雜性,我不認爲這是必要的,但是包含了一個C#示例。 –

+1

懶惰的答案是處理所有實現IDisposable的東西,而不是顯式調用Dispose來代替'使用'塊中的用法。 –

+0

這些對象位於實現「IDisposable」的類中。我想知道當我調用Dispose()時我必須做什麼。我是否也需要摧毀一切? –

回答

2

簡短回答:一旦你不再需要,就處理每個實現了IDisposable的對象。使用using statement以獲得安全和簡短的語法。

+0

好的。但是在使用它之後,我需要將DB設置爲null嗎?因爲'SqlDatabase'類沒有實現IDisposable。 –

相關問題