Nessuna descrizione
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

SerializationTools.cs 1.4KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. using System;
  2. namespace AppleAuth.Native
  3. {
  4. internal static class SerializationTools
  5. {
  6. internal static void FixSerializationForString(ref string originalString)
  7. {
  8. if (string.IsNullOrEmpty(originalString))
  9. originalString = null;
  10. }
  11. internal static void FixSerializationForArray<T>(ref T[] originalArray)
  12. {
  13. if (originalArray != null && originalArray.Length == 0)
  14. originalArray = null;
  15. }
  16. internal static void FixSerializationForObject<T>(ref T originalObject, bool hasOriginalObject)
  17. {
  18. if (!hasOriginalObject)
  19. originalObject = default(T);
  20. }
  21. internal static byte[] GetBytesFromBase64String(string base64String, string fieldName)
  22. {
  23. if (base64String == null)
  24. {
  25. return null;
  26. }
  27. var returnedBytes = default(byte[]);
  28. try
  29. {
  30. returnedBytes = Convert.FromBase64String(base64String);
  31. }
  32. catch (Exception exception)
  33. {
  34. Console.WriteLine("Received exception while deserializing byte array for " + fieldName);
  35. Console.WriteLine("Exception: " + exception);
  36. returnedBytes = null;
  37. }
  38. return returnedBytes;
  39. }
  40. }
  41. }