public override bool Equals(object obj)
{
if (ReferenceEquals(null, obj)) return false;
if (ReferenceEquals(this, obj)) return true;
if (obj.GetType() != GetType()) return false;
var value = obj as ChildViaSettings;
if (value == null || !base.Equals(value)) return false;
return
Prop1 == value.Prop1;
}