public override bool Equals(object obj)
        {
            ReflectionUtilsMockObject asMock = obj as ReflectionUtilsMockObject;

            if (asMock != null)
            {
                bool result = base.Equals(asMock) ||
                              (asMock.IntPropNonNullable == this.IntPropNonNullable &&
                               asMock.IntPropNullable == this.IntPropNullable &&
                               asMock.StringProp == this.StringProp &&
                               asMock.DateTimeProp == this.DateTimeProp &&
                               asMock.DateRangeProp == this.DateRangeProp);
                result = result && ((asMock.StringArrayProp == StringArrayProp) || asMock.StringArrayProp.Length == this.StringArrayProp.Length);
                if (result && asMock.StringArrayProp != null && StringArrayProp != null)
                {
                    for (int i = 0; i < asMock.StringArrayProp.Length; i++)
                    {
                        result = result && asMock.StringArrayProp[i] == this.StringArrayProp[i];
                    }
                }
                return(result);
            }
            return(base.Equals(obj));
        }
 public ReflectionUtilsMockObject(ReflectionUtilsMockObject parent = null)
 {
     _Parent = parent;
 }