2011-01-19 46 views
0

如果我有一個基本母版頁和內容頁,並且我想從內容頁面使用母版頁的某些屬性或方法,例如:CodeContracts:可能調用空引用的方法'this.Master'

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); 

這是否有意義?

+0

你可以確保`this.Master`不會爲空? – 2011-01-19 01:33:20

回答

0

可以作爲不變量添加到您的類:

[ContractInvariantMethod] 
private void Invariants() 
{ 
    Contract.Invariant(Master != null); 
} 
+0

我已經試過,但代碼合同回來了,並帶有警告:CodeContracts:不變未經證實:this.Master!= null – Richard 2011-01-20 02:12:52

相關問題