CodeContracts:可能在空引用'this.Master'上调用方法

时间:2011-01-19 01:28:54

标签: asp.net code-contracts

如果我有基本母版页和内容页面,并且我想从内容页面使用母版页的某些属性或方法,例如:

string something = this.Master.MasterPageFile;

代码合同静态分析会抱怨:

warning : CodeContracts: Possibly calling a method on a null reference 'this.Master'

如果我想访问母版页,如何让代码合约停止投诉?

R上。

[编辑]

看看这个?

public partial class Manage : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        this.Master.ShowFeedback("Test.", true);
    }

   [ContractInvariantMethod]
   private void ObjectInvariants()
   {
       Contract.Invariant(this.Master != null);
   }
}

每次我想调用Showfeedback()时,我都不想做以下事情:

Contract.Assume(this.Master != null)
this.Master.ShowFeedback("Test.", true);

这有意义吗?

1 个答案:

答案 0 :(得分:0)

您可以将其添加为您班级的不变量:

[ContractInvariantMethod]
private void Invariants()
{
    Contract.Invariant(Master != null);
}
相关问题