use newtonsoft json to clone object
// using Newtonsoft.Json;
// This sample is from the StackOverflow response (source cited) with
// a couple of modifications
public static T Clone<T>(T source)
{
var jsonSettings = new Newtonsoft.Json.JsonSerializerSettings() {
// Use this option to ignore reference looping option
ReferenceLoopHandling = Newtonsoft.Json.ReferenceLoopHandling.Ignore,
// Use this option when properties use an Interface as the type
TypeNameHandling = Newtonsoft.Json.TypeNameHandling.All
};
var serialized = JsonConvert.SerializeObject(source, jsonSettings);
return JsonConvert.DeserializeObject<T>(serialized, jsonSettings);
}
/* For System Extension Method */
public static class SystemExtension
{
public static T Clone<T>(this T source)
{
var jsonSettings = new Newtonsoft.Json.JsonSerializerSettings() {
// Use this option to ignore reference looping option
ReferenceLoopHandling = Newtonsoft.Json.ReferenceLoopHandling.Ignore,
// Use this option when properties use an Interface as the type
TypeNameHandling = Newtonsoft.Json.TypeNameHandling.All
};
var serialized = JsonConvert.SerializeObject(source, jsonSettings);
return JsonConvert.DeserializeObject<T>(serialized, jsonSettings);
}
}
Are there any code examples left?
New code examples in category C#
-
C# 2022-03-27 22:40:23 c# movement script
-
C# 2022-03-27 22:15:17 Delete last modification on EntityFramework Core
-
C# 2022-03-27 22:15:02 file.create folder c#
-
C# 2022-03-27 19:25:04 Error inflating class android.support.constraint.ConstraintLayout
-
C# 2022-03-27 19:15:02 top down shooting in unity 2D
-
C# 2022-03-27 18:50:02 c# remove invalid directory characters
-
C# 2022-03-27 18:30:07 how to use K2 games Games parallax background
-
C# 2022-03-27 18:25:10 c# replace crlf
-
C# 2022-03-27 18:25:09 keycode for left mouse click unity