Advertisement
Guest User

Untitled

a guest
Aug 23rd, 2017
54
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.77 KB | None | 0 0
  1. // Extensions.cs
  2. // Created by johnmaloney on 2017/08/23
  3. using Newtonsoft.Json;
  4. using Newtonsoft.Json.Serialization;
  5. using System.IO;
  6. using System.Runtime.Serialization.Formatters.Binary;
  7. using System.Xml.Serialization;
  8.  
  9. private static JsonSerializerSettings jsonSettings;
  10. public static T DeserializeJson<T>(this string json) where T : class
  11. {
  12. if (jsonSettings == null)
  13. {
  14. jsonSettings = new JsonSerializerSettings();
  15. jsonSettings.ContractResolver = new CamelCasePropertyNamesContractResolver();
  16. jsonSettings.TypeNameHandling = TypeNameHandling.Auto;
  17. jsonSettings.ConstructorHandling = ConstructorHandling.AllowNonPublicDefaultConstructor;
  18. jsonSettings.Formatting = Formatting.Indented;
  19. }
  20.  
  21. return JsonConvert.DeserializeObject<T>(json, jsonSettings);
  22. }
  23.  
  24. /// <summary>
  25. /// Convert a class object into a JSON object
  26. /// </summary>
  27. /// <typeparam name="T"></typeparam>
  28. /// <param name="objectToSerialize"></param>
  29. /// <returns></returns>
  30. public static string SerializeToJson<T>(this T objectToSerialize) where T : class
  31. {
  32. if (jsonSettings == null)
  33. {
  34. jsonSettings = new JsonSerializerSettings();
  35. jsonSettings.ContractResolver = new CamelCasePropertyNamesContractResolver();
  36. jsonSettings.TypeNameHandling = TypeNameHandling.Auto;
  37. jsonSettings.ConstructorHandling = ConstructorHandling.AllowNonPublicDefaultConstructor;
  38. jsonSettings.Formatting = Formatting.Indented;
  39. }
  40.  
  41. return JsonConvert.SerializeObject(objectToSerialize, jsonSettings);
  42. }
  43.  
  44. public static T CarbonCopy<T>(this T itemToCopy)
  45. {
  46. using (var ms = new MemoryStream())
  47. {
  48. var formatter = new BinaryFormatter();
  49. formatter.Serialize(ms, itemToCopy);
  50. ms.Position = 0;
  51. return (T)formatter.Deserialize(ms);
  52. }
  53. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement