internal static bool TryKeyPrimitiveToString(object value, out string result)
 {
     if (IsBinaryValue(value))
     {
         return(TryKeyBinaryToString(value, out result));
     }
     if (value is DateTimeOffset)
     {
         value = ((DateTimeOffset)value).UtcDateTime;
     }
     else if (value is DateTimeOffset?)
     {
         value = ((DateTimeOffset?)value).Value.UtcDateTime;
     }
     return(WebConvert.TryKeyPrimitiveToString(value, out result));
 }
 internal static bool TryKeyBinaryToString(object binaryValue, out string result)
 {
     return(WebConvert.TryKeyPrimitiveToString((byte[])binaryValue.GetType().InvokeMember("ToArray", BindingFlags.Instance | BindingFlags.Public | BindingFlags.InvokeMethod, null, binaryValue, null, null, CultureInfo.InvariantCulture, null), out result));
 }