根据Autofac的文档,我了解到它会保留创建的每个IDisposable实现者的引用。因此,它可能导致OutOfMemoryException。因此,建议使用ILifetimeScope来解决依赖关系。
假设IService实现了IDisposable接口。
class MaintenanceTask {
private IService service;
public MaintenanceTask(ILifetimeScope lifetimeScope) {
service = lifetimeScope.Resolve<IService>();
}
//...do your work
}
但是这种方法的问题在于它隐藏了依赖关系。我必须查看代码才能确定该类依赖于什么。有没有其他更明确的处理方式?更具体地说,如何使依赖关系更加明显,而无需查看代码?或者我完全错了吗?
IService
。 - Daniel Hilgarth