c# clone object code example
Example 1: use newtonsoft json to clone object
public static T Clone<T>(T source)
{
var jsonSettings = new Newtonsoft.Json.JsonSerializerSettings() {
ReferenceLoopHandling = Newtonsoft.Json.ReferenceLoopHandling.Ignore,
TypeNameHandling = Newtonsoft.Json.TypeNameHandling.All
};
var serialized = JsonConvert.SerializeObject(source, jsonSettings);
return JsonConvert.DeserializeObject<T>(serialized, jsonSettings);
}
public static class SystemExtension
{
public static T Clone<T>(this T source)
{
var jsonSettings = new Newtonsoft.Json.JsonSerializerSettings() {
ReferenceLoopHandling = Newtonsoft.Json.ReferenceLoopHandling.Ignore,
TypeNameHandling = Newtonsoft.Json.TypeNameHandling.All
};
var serialized = JsonConvert.SerializeObject(source, jsonSettings);
return JsonConvert.DeserializeObject<T>(serialized, jsonSettings);
}
}
Example 2: c# copy an object
class TestClass
{
public TestClass Copy()
{
return MemberwiseClone();
}
}