-1

我在 MVP 模型中有一个页面。我的视图界面中的属性是在后面的代码中实现的,即 .aspx.cs 文件。在 code behind 中实现的大多数属性中,我的代码监控工具会显示如下警告:

UseObjectDisposedExceptionRule :IDisposable 类型的方法不会引发 System.ObjectDisposedException。

异常显示在设置器中,即

    public bool IsOkToPtoceed
    {
    get
    {
     return _isOkToProceed;
    }
    set
    {
    /// warning is displayed in this line
    _isOkToProceed=value;
    }
    }

我应该如何处理警告?是否只是在设置值时使用 try catch 块?

4

2 回答 2

1

这是防止使用后处置的准则。

set
{
   /// warning is displayed in this line
   if (this.IsDisposed)
       throw new ObjectDisposedException("<classname>");

   _isOkToProceed=value;
}
于 2013-10-07T14:08:06.530 回答
1

您的工具会告诉您应该做什么:

如果对象已被释放,则抛出 ObjectDisposedException。

public void Dispose ()
{
    if (!disposed) {
        // Implement the details of your dispose method here.
        disposed = true;
    }
}

private bool disposed;

public bool IsOkToPtoceed
{
    get
    {
        return _isOkToProceed;
    }
    set
    {
        if (disposed) {
            throw new ObjectDisposedException (GetType ().Name);
        }
        _isOkToProceed=value;
    }
}
于 2013-10-07T14:09:45.853 回答