/// <summary>
 /// Invalidates the Type/Handler cache whenever a handler is updated
 /// </summary>
 /// <param name="index">the 0-based index of the item</param>
 /// <param name="oldValue">the old value</param>
 /// <param name="newValue">the new value</param>
 protected override void OnSetComplete(int index, object oldValue, object newValue)
 {
     base.OnSetComplete(index, oldValue, newValue);
     InvalidateCache();
     if (!object.ReferenceEquals(oldValue, newValue))
     {
         SerializerSettings.SetConfigurationAware(newValue, Settings);
     }
 }
 /// <summary>
 /// Invalidates the Type/Handler cache whenever a new handler is inserted
 /// </summary>
 /// <param name="index">the insertion point</param>
 /// <param name="value">the inserted item</param>
 protected override void OnInsertComplete(int index, object value)
 {
     base.OnInsertComplete(index, value);
     InvalidateCache();
     SerializerSettings.SetConfigurationAware(value, Settings);
 }