System.Runtime.Serialization.Formatters.Soap.Converter.ToString C# (CSharp) Method

ToString() static private method

static private ToString ( Object data, InternalPrimitiveTypeE code ) : String
data Object
code InternalPrimitiveTypeE
return String
        internal static String ToString(Object data, InternalPrimitiveTypeE code)
        {
            // Any changes here need to also be made in System.Runtime.Remoting.Message.cs::SoapCoerceArg

            String value;
            InternalST.Soap( "Converter", "ToString Entry ", ((data==null)?"<null>":data.GetType().ToString())," ",data," " , ((Enum)code).ToString());

            switch (code)
            {
                case InternalPrimitiveTypeE.Boolean:
                    bool b = (bool)data;
                    if (b)
                        value = "true";
                    else
                        value = "false";
                    break;

                case InternalPrimitiveTypeE.TimeSpan:
                    value = SoapDuration.ToString((TimeSpan)data);
                    break;                          
                case InternalPrimitiveTypeE.DateTime:
                    value = SoapDateTime.ToString((DateTime)data);
                    break;
                case InternalPrimitiveTypeE.Invalid:
                    // ToString should not be called if data is an object or string
                    InternalST.SoapAssert(false, "[Converter.ToString]!InternalPrimitiveTypeE.Invalid ");
                    value = data.ToString();
                    break;
                case InternalPrimitiveTypeE.Double:
                    Double doublevalue = (Double)data;
                    if (Double.IsPositiveInfinity(doublevalue))
                        value = "INF";
                    else if (Double.IsNegativeInfinity(doublevalue))
                        value = "-INF";
                    else
                        value = doublevalue.ToString("R", CultureInfo.InvariantCulture);
                    break;
                case InternalPrimitiveTypeE.Single:
                    Single singlevalue = (Single)data;
                    if (Single.IsPositiveInfinity(singlevalue))
                        value = "INF";
                    else if (Single.IsNegativeInfinity(singlevalue))
                        value = "-INF";
                    else
                        value = singlevalue.ToString("R", CultureInfo.InvariantCulture);
                    break; 
                case InternalPrimitiveTypeE.Time:
                case InternalPrimitiveTypeE.Date:
                case InternalPrimitiveTypeE.YearMonth:
                case InternalPrimitiveTypeE.Year:
                case InternalPrimitiveTypeE.MonthDay:
                case InternalPrimitiveTypeE.Day:
                case InternalPrimitiveTypeE.Month:
                case InternalPrimitiveTypeE.HexBinary:
                case InternalPrimitiveTypeE.Base64Binary:
                case InternalPrimitiveTypeE.Integer:
                case InternalPrimitiveTypeE.PositiveInteger:
                case InternalPrimitiveTypeE. NonPositiveInteger:
                case InternalPrimitiveTypeE.NonNegativeInteger:
                case InternalPrimitiveTypeE.NegativeInteger:
                case InternalPrimitiveTypeE.AnyUri:
                case InternalPrimitiveTypeE.QName:
                case InternalPrimitiveTypeE.Notation:
                case InternalPrimitiveTypeE.NormalizedString:
                case InternalPrimitiveTypeE.Token:
                case InternalPrimitiveTypeE.Language:
                case InternalPrimitiveTypeE.Name:
                case InternalPrimitiveTypeE.Idrefs:
                case InternalPrimitiveTypeE.Entities:
                case InternalPrimitiveTypeE.Nmtoken:
                case InternalPrimitiveTypeE.Nmtokens:
                case InternalPrimitiveTypeE.NcName:
                case InternalPrimitiveTypeE.Id:
                case InternalPrimitiveTypeE.Idref:
                case InternalPrimitiveTypeE.Entity:
                        value = data.ToString();
                        break;
                default:
                    value = (String)Convert.ChangeType(data, typeofString, CultureInfo.InvariantCulture);
                    break;
            }

            InternalST.Soap( "Converter", "ToString Exit ",value);          
            return value;
        }