c# - 一次性注册表 : good pattern?

标签 c# idisposable

想象一个:

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/

相关文章:

c# - 如果它是 IDisposable,我可以 "inline"变量吗?

c# - 如何通过 Javascript 或 Jquery 调用代码隐藏中的方法

c# - 在 itextsharp 中 Pades LTV 验证抛出 The Uri Prefix is not Recognized

c# - 无法从动态生成的程序集访问 CodeBase

c# - IDispose 对象是否可以没有可用的 Dispose 方法

c# - 当从 'return' block 中调用 'using' 时会发生什么?

c# - 向接口(interface)添加属性会阻止在派生类型中创建私有(private)/ protected "set"吗?

c# - 内部类放在哪里?

C# 使用 IDisposable 清理临时文件

c# - 如何防止 SolidColorBrush 对象发生内存泄漏?