Advertisement
why_where_what

ObjectClone Extension

Dec 5th, 2019
250
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 0.88 KB | None | 0 0
  1. public static class ObjectExtensions
  2.     {
  3.         public static object ObjectClone(this object obj)
  4.         {
  5.             var type = obj.GetType();
  6.             var copy = Activator.CreateInstance(type);
  7.  
  8.             var fields = type.GetFields(BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.FlattenHierarchy);
  9.             foreach (var field in fields)
  10.             {
  11.                 field.SetValue(copy, field.GetValue(obj));
  12.             }
  13.  
  14.             var props = type.GetProperties(BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.FlattenHierarchy);
  15.             foreach (var property in props)
  16.             {
  17.                 if (property.CanWrite)
  18.                 {
  19.                     property.SetValue(copy, property.GetValue(obj));
  20.                 }
  21.             }
  22.  
  23.             return copy;
  24.         }
  25.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement