/// <summary>Returns string representation of a header value from various types.</summary> /// <param name="value">The header value.</param> /// <returns>The string representation of the header value.</returns> public static string FromValue(dynamic value) { if (value.GetType().Equals(typeof(Oci.Common.Model.Range))) { return(value.ToString()); } if (value.GetType().Equals(typeof(DateTime))) { return(HttpDateUtils.ToRfc3339Format(value)); } if (value.GetType().Equals(typeof(BigInteger))) { return(value.ToString()); } // Enum values cannot be directly casted to string because their values need to come from EnumMember attribute. if (value.GetType().IsEnum) { return(HttpUtils.GetEnumString(value)); } return(Convert.ToString(value)); }
/// <summary>Converts a string into header value based on the type provided.</summary> /// <param name="strValue">The string representation of the header value.</param> /// <param name="type">The expected type of the header value.</param> /// <returns>The converted header value.</returns> public static dynamic ToValue(string strValue, Type type) { if (type.Equals(typeof(Oci.Common.Model.Range))) { return(Oci.Common.Model.Range.ParseRange(strValue)); } if (type.Equals(typeof(DateTime))) { return(HttpDateUtils.ToDateTime(strValue)); } if (type.Equals(typeof(BigInteger))) { return(BigInteger.Parse(strValue)); } var converter = TypeDescriptor.GetConverter(type); if (converter == null) { throw new ArgumentException($"Unable to get converter for type {type}"); } var retVal = converter.ConvertFrom(strValue); return(retVal); }