/// <summary>
        /// Attempts to case compareToThis as an bool
        /// to do the comparison. If the cast
        /// fails, then it compares the current
        /// value against bool.MinValue.
        /// </summary>
        /// <param name="compareToThis"></param>
        /// <returns></returns>
        public int CompareTo(object compareToThis)
        {
            System.Type type = compareToThis.GetType();

            bool compareTo = MediaObject.IsValueTrue(compareToThis.ToString(), !this.m_value);

            if (this.m_value == compareTo)
            {
                return(0);
            }
            else if (this.m_value)
            {
                return(-1);
            }
            else
            {
                return(1);
            }
        }
 /// <summary>
 /// Assume the name has been read.
 /// </summary>
 /// <param name="reader"></param>
 public PropertyBool(XmlReader reader)
 {
     this.m_value = MediaObject.IsValueTrue(reader.Value, false);
     this.ns_tag  = (string)CdsMetadataCaches.Didl.CacheThis(reader.Name);
 }