1
這裏是我的類:我的具有IDisposable構造函數依賴項的組件是IDisposable嗎?
public class TaskLogger : ITaskLogger
{
private readonly IDbConnection _dbConnection;
public TaskLogger(IDbConnection dbConnection)
{
_dbConnection = dbConnection;
}
public void LogTask(int clientId, string taskName)
{
_dbConnection.Execute("insert blah",{clientId,taskName}});
}
}
我們使用溫莎DI。
應該將TaskLogger聲明爲IDisposable,並處理IDbConnection?
同意,儘管我必須指出.net CLR中有一些類將配置項傳遞給構造函數,例如['BinaryReader()'](http://msdn.microsoft.com/zh-cn/我/庫/ 2k01zeat.aspx)(我一直認爲這是一個壞主意!) –
是的,我認爲你的第一句話說 - 它不負責注入依賴的生命週期的類。我正在尋找一些確認,這一切都在溫莎的「正常工作」。因爲在這個方法中,我們假設DI容器是負責任的並且實際上會處理它 –
當使用DI時,您不應該處理您不擁有的實例 - 因爲主要思想是框架控制這些實例的方式用過的。例如,連接可能是一個單例,但是每個線程的記錄器......因爲這個DI框架將處理處置。 –