partial void CopyExtraPropertiesToClone(IValue clone, bool includeLocalProperties);
public IValue Clone(bool includeLocalProperties) { var c = new IValue { Icon = Icon, Identifier = Identifier, Parent = Parent, Text = Text, Children = Children.Select(x=>x.Clone(includeLocalProperties)).ToList(), }; CopyExtraPropertiesToClone(c, includeLocalProperties); return c; }