public override bool Equals(object obj)
{
var compareTo = obj as BaseObject;
if (ReferenceEquals(this, compareTo))
{
return true;
}
return compareTo != null && this.GetType().Equals(compareTo.GetTypeUnproxied()) &&
HasSameObjectSignatureAs(compareTo);
}