2013-10-07 31 views
-1

我在MVP模型中有一個頁面。我的視圖界面中的屬性在後面的代碼即.aspx.cs文件中實現。在代碼後面實現的大多數屬性中,我的代碼監視工具顯示如下警告:UseObjectDisposedExceptionRule:IDisposable類型的方法不會拋出System.ObjectDisposedException

UseObjectDisposedExceptionRule:IDisposable類型的方法不拋出System.ObjectDisposedException。

唯一的例外是在二傳手即顯示,

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

我應該如何處理警告?是否只需在設置值時使用try catch塊?

回答

1

這是防止處理後使用的指導原則。

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

    _isOkToProceed=value; 
} 
+0

我正在使用的屬性是設置本地私有變量。沒有使用網絡控制。在這種情況下,我該如何檢查對象是否已被丟棄?什麼是定義IsDisposed的名稱空間? – Neerajan

+1

'IsDisposed'應該在類中定義,也許是'_isDisposed'或其他。實現有所不同。但是關掉或忽略該警告是安全的。 –

1
如果對象已經被設置

Your tool tells you what you should do:

投擲的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; 
    } 
} 
+0

如何用最少的代碼檢查對象是否已被處置?有任何想法嗎? – Neerajan

+0

@Neerajan我已經添加了示例代碼,來自鏈接頁面上的文檔。 – Stijn

+0

當前語境中的作者是什麼? – Neerajan

相關問題