Esempio n. 1
0
        /// <summary>
        /// Parses the specified field.
        /// </summary>
        /// <param name="field">The unicode string representing the native object to be parsed.</param>
        /// <param name="valueType">The managed type to be used.</param>
        /// <returns>A managed object that might safely be used by Gallio assertion failure engine.</returns>
        /// <exception cref="ModelException">Thrown if the parsing fails.</exception>
        public static object Parse(string field, NativeValueType valueType)
        {
            try
            {
                switch (valueType)
                {
                case NativeValueType.Raw:
                    return(new NativeRawObject(field));

                case NativeValueType.String:
                    return(field);

                case NativeValueType.Boolean:
                    return(Boolean.Parse(field));

                case NativeValueType.Char:
                    return(Char.Parse(field));

                case NativeValueType.Byte:
                    return(Byte.Parse(field));

                case NativeValueType.Int16:
                    return(Int16.Parse(field));

                case NativeValueType.UInt16:
                    return(UInt16.Parse(field));

                case NativeValueType.Int32:
                    return(Int32.Parse(field));

                case NativeValueType.UInt32:
                    return(UInt32.Parse(field));

                case NativeValueType.Int64:
                    return(Int64.Parse(field));

                case NativeValueType.UInt64:
                    return(UInt64.Parse(field));

                case NativeValueType.Single:
                    return(Single.Parse(field));

                case NativeValueType.Double:
                    return(Double.Parse(field));

                case NativeValueType.Address:
                    return(NativeIntPtr.Parse(field));

                default:
                    throw new ModelException(String.Format("Cannot parse the native unmanaged type value: unsupported type '{0}'.", valueType));
                }
            }
            catch (FormatException exception)
            {
                throw new ModelException(String.Format("Cannot parse the native unmanaged type value: invalid value '{0}' of type '{1}'.", field, valueType), exception);
            }
        }
        /// <summary>
        /// Parses the specified field.
        /// </summary>
        /// <param name="field">The unicode string representing the native object to be parsed.</param>
        /// <param name="valueType">The managed type to be used.</param>
        /// <returns>A managed object that might safely be used by Gallio assertion failure engine.</returns>
        /// <exception cref="ModelException">Thrown if the parsing fails.</exception>
        public static object Parse(string field, NativeValueType valueType)
        {
            try
            {
                switch (valueType)
                {
                    case NativeValueType.Raw:
                        return new NativeRawObject(field);

                    case NativeValueType.String:
                        return field;

                    case NativeValueType.Boolean:
                        return Boolean.Parse(field);

                    case NativeValueType.Char:
                        return Char.Parse(field);

                    case NativeValueType.Byte:
                        return Byte.Parse(field);

                    case NativeValueType.Int16:
                        return Int16.Parse(field);

                    case NativeValueType.UInt16:
                        return UInt16.Parse(field);

                    case NativeValueType.Int32:
                        return Int32.Parse(field);

                    case NativeValueType.UInt32:
                        return UInt32.Parse(field);

                    case NativeValueType.Int64:
                        return Int64.Parse(field);

                    case NativeValueType.UInt64:
                        return UInt64.Parse(field);

                    case NativeValueType.Single:
                        return Single.Parse(field);

                    case NativeValueType.Double:
                        return Double.Parse(field);

                    case NativeValueType.Address:
                        return NativeIntPtr.Parse(field);

                    default:
                        throw new ModelException(String.Format("Cannot parse the native unmanaged type value: unsupported type '{0}'.", valueType));
                }
            }
            catch (FormatException exception)
            {
                throw new ModelException(String.Format("Cannot parse the native unmanaged type value: invalid value '{0}' of type '{1}'.", field, valueType), exception);
            }
        }