/// <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)); } }
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)); } }