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框架将处理处置。 –