2009-07-21 62 views
1

我幾乎在所有有可重寫方法的地方都進行了方法here,並設法修復它們,但是有一部分方法不能以相同方式在不同contexted一段代碼:使用InitMembers構造函數中的可重寫方法()

public Employee() 
    { 
     this.InitMembers(); 
    } 

    private void InitMembers() 
    { 
     // Init the collection so it's never null 
     this.Territories = new List<Territory>(); 
    } 
    public Employee(string firstName, string lastName): this() 
    { 
     this.reffirstName = firstName; 
     this.reflastName = lastName; 
    } 
> public virtual IList<Territory> Territories { get; protected set; } 

如果再次>是導致錯誤的代碼,我卻得到一個智能感知選項「轉換爲自動屬性」,它只是恢復的代碼,當它被啓動,並沒有解決問題。 任何人都知道需要對此部分進行哪些修改才能消除fxcop違規?

+0

您是否有私人成員IList 該屬性是基於?如果是這樣,你可以直接訪問它。 – 2009-07-21 08:51:48

回答

0

出現此錯誤是因爲您的私有構造函數正在調用可從派生類重寫的方法。要修復警告,您需要從構造函數中刪除對虛擬方法的任何調用。

在您列出的示例中,InitMembers使用'this.Territories',這是導致違規的原因。根據你以後的評論,你已經添加了一個私人成員 - 用它來代替。

相關問題