title: StyleCop issue needs resolving - contains a call chain that results in a call to a virtual method defined by the class
body: <p>I have been cleaning my project files with StyleCop and I have the following I can not resolve</p>
  
  <p><em>PasswordPolicyCollection.cs (13): CA2214 : Microsoft.Usage : 'PasswordPolicyCollection.PasswordPolicyCollection()' contains a call chain that results in a call to a virtual method defined by the class. Review the following call stack for unintended consequences:   PasswordPolicyCollection..ctor() ConfigurationElementCollection.CreateNewElement():ConfigurationElement PasswordPolicyCollection.Add(PasswordPolicy):Void ConfigurationElementCollection.BaseAdd(ConfigurationElement):Void</em></p>
  
  <p>Here is the code:</p>
  
  <pre><code>using System.Configuration;
  
  public class PasswordPolicyCollection : ConfigurationElementCollection
  {
      public PasswordPolicyCollection()
      {
          var passwordPolicy = (PasswordPolicy)this.CreateNewElement();
          this.Add(passwordPolicy);
      }
  
      public override ConfigurationElementCollectionType CollectionType
      {
          get
          {
              return ConfigurationElementCollectionType.AddRemoveClearMap;
          }
      }
  
      public new PasswordPolicy this[string name]
      {
          get
          {
              return (PasswordPolicy)BaseGet(name);
          }
      }
  
      public PasswordPolicy this[int index]
      {
          get
          {
              return (PasswordPolicy)BaseGet(index);
          }
  
          set
          {
              if (BaseGet(index) != null)
              {
                  BaseRemoveAt(index);
              }
  
              BaseAdd(index, value);
          }
      }
  
      public void Add(PasswordPolicy passwordPolicy)
      {
          this.BaseAdd(passwordPolicy);
      }
  
      public int Indexof(PasswordPolicy policy)
      {
          return BaseIndexOf(policy);
      }
  
      public void Remove(PasswordPolicy url)
      {
          if (BaseIndexOf(url) &gt;= 0)
              BaseRemove(url.Name);
      }
  
      public void RemoveAt(int index)
      {
          BaseRemoveAt(index);
      }
  
      public void Remove(string name)
      {
          BaseRemove(name);
      }
  
      public void Clear()
      {
          BaseClear();
      }
  
      protected override void BaseAdd(ConfigurationElement policy)
      {
          BaseAdd(policy, false);
      }
  
      protected override sealed ConfigurationElement CreateNewElement()
      {
          return new PasswordPolicy();
      }
  
      protected override object GetElementKey(ConfigurationElement policy)
      {
          return ((PasswordPolicy)policy).Name;
      }
  }
  </code></pre>
  
  <p>Any ideas?</p>