想象一个:
public class Global : IDisposable
{
private static readonly List<IDisposable> Disposables = new List<IDisposable>();
public void ApplicationStart()
{
var heavyLifter = new HeavyLifter();
Disposables.Add(heavyLifter);
// register a few more
}
public void Dispose()
{
Disposables.ForEach(d => d.Dispose());
}
}
我对 IDisposable 不太熟悉。这是一个可行的模式吗?
最佳答案
据我了解,您正在创建一个将使用(我假设)实现 IDisposable
的多个资源的组件,并且您只是在寻找一种方法来维护 的列表>IDisposable
对象在您的组件中,只是遍历列表而不是按名称对每个项目调用 Dispose
,对吗?
如果是这样,那就没有错了。但是,您的列表不应该是静态的
,它应该是每个实例。
关于c# - 一次性注册表 : good pattern?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2893300/