Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // Extensions.cs
- // Created by johnmaloney on 2017/08/23
- using Newtonsoft.Json;
- using Newtonsoft.Json.Serialization;
- using System.IO;
- using System.Runtime.Serialization.Formatters.Binary;
- using System.Xml.Serialization;
- private static JsonSerializerSettings jsonSettings;
- public static T DeserializeJson<T>(this string json) where T : class
- {
- if (jsonSettings == null)
- {
- jsonSettings = new JsonSerializerSettings();
- jsonSettings.ContractResolver = new CamelCasePropertyNamesContractResolver();
- jsonSettings.TypeNameHandling = TypeNameHandling.Auto;
- jsonSettings.ConstructorHandling = ConstructorHandling.AllowNonPublicDefaultConstructor;
- jsonSettings.Formatting = Formatting.Indented;
- }
- return JsonConvert.DeserializeObject<T>(json, jsonSettings);
- }
- /// <summary>
- /// Convert a class object into a JSON object
- /// </summary>
- /// <typeparam name="T"></typeparam>
- /// <param name="objectToSerialize"></param>
- /// <returns></returns>
- public static string SerializeToJson<T>(this T objectToSerialize) where T : class
- {
- if (jsonSettings == null)
- {
- jsonSettings = new JsonSerializerSettings();
- jsonSettings.ContractResolver = new CamelCasePropertyNamesContractResolver();
- jsonSettings.TypeNameHandling = TypeNameHandling.Auto;
- jsonSettings.ConstructorHandling = ConstructorHandling.AllowNonPublicDefaultConstructor;
- jsonSettings.Formatting = Formatting.Indented;
- }
- return JsonConvert.SerializeObject(objectToSerialize, jsonSettings);
- }
- public static T CarbonCopy<T>(this T itemToCopy)
- {
- using (var ms = new MemoryStream())
- {
- var formatter = new BinaryFormatter();
- formatter.Serialize(ms, itemToCopy);
- ms.Position = 0;
- return (T)formatter.Deserialize(ms);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement