-1

MVP モデルのページがあります。ビュー インターフェイスのプロパティは、コード ビハインド、つまり .aspx.cs ファイルに実装されています。コード ビハインドで実装されているほとんどのプロパティで、私のコード監視ツールは次のような警告を表示します。

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 に答える