C# UseObjectDisposedException规则:IDisposable类型的方法不会引发System.ObjectDisposedException

C# UseObjectDisposedException规则:IDisposable类型的方法不会引发System.ObjectDisposedException,c#,properties,C#,Properties,我有一个MVP模式的页面。“我的视图”界面中的属性在ie.aspx.cs文件背后的代码中实现。在代码隐藏中实现的大多数属性中,我的代码监视工具显示如下警告: UseObjectDisposedException规则:IDisposable类型的方法不会引发System.ObjectDisposedException 异常显示在setter ie中 public bool IsOkToPtoceed { get { return _isOkToProcee

我有一个MVP模式的页面。“我的视图”界面中的属性在ie.aspx.cs文件背后的代码中实现。在代码隐藏中实现的大多数属性中,我的代码监视工具显示如下警告:

UseObjectDisposedException规则:IDisposable类型的方法不会引发System.ObjectDisposedException

异常显示在setter ie中

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

我该如何处理这个警告?只是在设置值时使用try-catch-block吗?

这是一个防止在处置后使用的指南

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

   _isOkToProceed=value;
}
set
{
///警告显示在此行中
如果(此.IsDisposed)
抛出新的ObjectDisposedException(“”);
_isoktoproced=值;
}

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


我使用的属性是设置局部私有变量。没有使用任何web控件。在这种情况下,如何检查对象是否已被处置?定义IsDisposed的名称空间是什么?
IsDisposed
应该在类中定义,可能是
\u IsDisposed
之类的。实现各不相同。但关闭或忽略该警告是安全的。我如何检查对象是否已用最少的代码处理?有什么想法吗?@Neerajan我已经从链接页面的文档中添加了示例代码。在当前上下文中,writer是什么?我在超过25个属性(setters)中收到了此警告,使用commom private bool disposed变量会不会产生任何问题?@Neerajan我假设您的类指定了
IDisposable
接口?如果是这样,那么您必须有充分的理由这样做(因此也知道如何正确地实现这一点)?如果没有,那么代码监视工具就有问题了。
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;
    }
}