/// <summary>
        /// To Parse String.
        /// </summary>
        /// <param name="obj">The Object.</param>
        /// <param name="parseTypeOrNull">Parse Type Or Null.</param>
        /// <param name="suppressDefaults">Suppress Defaults</param>
        /// <returns></returns>
        public static string ToParseString(this object obj, Type parseTypeOrNull = null, bool suppressDefaults = false)
        {
            if (obj == null)
            {
                return(null);
            }

            Type t = obj.GetType();

            if (t.HasParseMethod() || !t.IsConstructable())
            {
                return(obj.ToString());
            }
            else if (obj is IEnumerable)
            {
                return("(" + ((IEnumerable)obj).StringJoin(",") + ")");
            }
            else if (parseTypeOrNull == null)
            {
                return(ConstructorArguments.ToString(obj));    // can only get here if t is constructable.
            }
            else
            {
                object valueAsParseType = ArgumentCollection.ImplicitlyCastValueToType(obj, parseTypeOrNull);
                return(ConstructorArguments.ToString(valueAsParseType, suppressDefaults));
            }
        }
Exemplo n.º 2
0
        public static string ToParseString(this object o, Type parseTypeOrNull = null, bool suppressDefaults = false)
        {
            Type t = o.GetType();

            if (t.HasParseMethod() || !t.IsConstructable())
            {
                return(o.ToString());
            }
            else if (parseTypeOrNull == null)
            {
                return(ConstructorArguments.ToString(o));    // can only get here if t is constructable.
            }
            else
            {
                object valueAsParseType = ArgumentCollection.ImplicitlyCastValueToType(o, parseTypeOrNull);
                return(ConstructorArguments.ToString(valueAsParseType, suppressDefaults));
            }
        }