internal override void ReplaceItem(JToken existing, JToken replacement)
{
if (IsTokenUnchanged(existing, replacement))
return;
if (Parent != null)
((JObject)Parent).InternalPropertyChanging(this);
base.ReplaceItem(existing, replacement);
if (Parent != null)
((JObject)Parent).InternalPropertyChanged(this);
}