38得票8回答
判断是否由于抛出异常而在finally块中执行

有没有办法确定代码当前是否正在执行 finally 处理程序以响应抛出的异常?我非常喜欢使用 IDisposable 模式来实现进入/退出作用域功能,但是这种模式的一个问题是,如果在 using 的主体中发生异常,您可能不希望发生范围结束行为。我想要的东西类似于:public static c...

38得票9回答
为什么Dispose()方法应该是非虚拟的?

我刚接触C#,如果这是一个显而易见的问题,请见谅。 在MSDN释放范例中,他们定义的Dispose方法是非虚拟的。为什么呢?这对我来说似乎很奇怪 - 我本来希望一个IDisposable的子类如果有自己的非托管资源,只需要覆盖Dispose并在自己方法的底部调用base.Dispose()。...

35得票8回答
一个.Net/C#对象是否应该调用自身的Dispose()方法?

下面是同事编写的一些示例代码。我觉得这显然是错误的,但我想确认一下。一个对象是否应该在其自己的方法中调用自己的Dispose()方法?在我看来,只有对象的所有者/创建者在完成对象后才应该调用Dispose()而不是对象本身。这是一个.asmx Web 方法,在完成时会调用自己的Dispose(...

34得票5回答
在Dispose()方法中,GC.SuppressFinalize(this)的目的是什么?

我有以下代码: public void Dispose() { if (_instance != null) { _instance = null; // Call GC.SupressFinalize to take this object ...

33得票1回答
Dispose() 和 Ninject 的指南

所以,我有一个从 WCF 服务暴露出来的方法如下:public GetAllCommentsResponse GetAllComments(GetAllCommentsRequest request) { var response = new GetAllCommentsRespons...

32得票10回答
谁负责处理IDisposable公共属性?

如果我有一个实现IDisposable接口的SomeDisposableObject类: class SomeDisposableObject : IDisposable { public void Dispose() { // Do some importa...

32得票1回答
为什么asp.net MVC控制器需要显式Dispose()方法?有人可以解释一下吗?(具体针对asp.net)

我知道C#可以通过其垃圾回收器很好地管理资源。但既然有了这个,那它到底是用来做什么的,为什么需要它? 有人能解释一下为什么在asp.net mvc中需要.Dispose()吗? 此外,什么是Dispose一个连接的意思?为什么需要这样做?是否有人了解为什么像db.Dispose()这样处理...

31得票6回答
如何正确释放ThreadLocal<IDisposable>中持有的元素?

当您使用 ThreadLocal&lt;T&gt;,且 T 实现了 IDisposable 接口时,您应该如何处理 ThreadLocal 中持有的成员的处理? 根据 ILSpy 的分析,ThreadLocal 的 Dispose() 和 Dispose(bool) 方法如下: publi...

31得票3回答
Java中的Closeable是否应该被用作.NET中IDisposable的等价物?

更新:正如@PaulGroke在下面指出的,Java 7 中的情况发生了变化:现在有 AutoCloseable 接口。它并不仅限于流并且被新的 try-with-resources 结构支持。 AutoCloseable 是直接相当于 .NET 的 IDisposable 接口的 Java...

31得票1回答
依赖注入和IDisposable

我对使用Autofac时IDisposable实现中Dispose()方法有点困惑 假设我对象有一定的层次结构: Controller 依赖于 IManager; Manager 依赖于 IRepository; Repository 依赖于 ISession; ISession 是 I...