我在MVP模型中有一个页面。我的视图界面中的属性是在.aspx.cs文件后面的代码中实现的。在代码隐藏中实现的大多数属性中,我的代码监视工具显示如下警告:
UseObjectDisposedExceptionRule:IDisposable类型的方法不会抛出System.ObjectDisposedException。
异常显示在setter中,即
public bool IsOkToPtoceed
{
get
{
return _isOkToProceed;
}
set
{
/// warning is displayed in this line
_isOkToProceed=value;
}
}
我该如何处理警告?是否只是在设置值时使用try catch块?
答案 0 :(得分:1)
这是防止使用后处理的指南。
set
{
/// warning is displayed in this line
if (this.IsDisposed)
throw new ObjectDisposedException("<classname>");
_isOkToProceed=value;
}
答案 1 :(得分: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;
}
}