SerializableUtility.cs 990 B

12345678910111213141516171819202122232425262728
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Runtime.CompilerServices;
  5. using System.Text;
  6. namespace BansheeEngine
  7. {
  8. /// <summary>
  9. /// Provides utility methods dealing with object serialization.
  10. /// </summary>
  11. public static class SerializableUtility
  12. {
  13. /// <summary>
  14. /// Clones the specified object. Non-serializable types and fields are ignored in clone. A deep copy is performed
  15. /// on all serializable elements except for resources or game objects.
  16. /// </summary>
  17. /// <param name="original">Non-null reference to the object to clone. Object type must be serializable.</param>
  18. /// <returns>Deep copy of the original object.</returns>
  19. public static object Clone(object original)
  20. {
  21. return Internal_Clone(original);
  22. }
  23. [MethodImpl(MethodImplOptions.InternalCall)]
  24. private static extern object Internal_Clone(object original);
  25. }
  26. }