使用InitMembers()的构造函数中的可重写方法

时间:2009-07-21 08:11:19

标签: constructor override fxcop s#arp-architecture

我已经在几乎所有我有可覆盖方法的区域上进行了方法here并设法修复它们但是有一个方法在这个方法不同的情况下在不同的上下文中工作代码:

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

再次&gt;是导致错误的代码,但我得到一个intellisense选项“转换为自动属性”,它只是将代码恢复到它启动时,而不是修复问题。 任何人都知道需要对此部分进行哪些修改才能消除fxcop违规行为?

1 个答案:

答案 0 :(得分:0)

出现错误是因为您的私有构造函数正在调用可以从派生类重写的方法。要修复警告,您需要从构造函数中删除对虚方法的任何调用。

在您列出的示例中,InitMembers使用“this.Territories”,这会导致违规。根据您之后的评论,您添加了一个私人会员 - 请改用它。