/** <summary>ISender objects need to have semantically meaningful Equals. </summary> <param name="o">The object to compare to.</param> <returns>True if they share a common end point.</returns> */ public override bool Equals(object o) { UnicastSender other = o as UnicastSender; if( other == null ) { return false; } else if( Object.ReferenceEquals(this, o) ) { return true; } else { return (_s.Equals( other._s ) && EndPoint.Equals( other.EndPoint )); } }