From 7d9f75e5808c80cb23ac007dc7d3b3e8ea9086c7 Mon Sep 17 00:00:00 2001 From: "a.afsharinejad" Date: Tue, 14 Nov 2023 12:55:29 +0330 Subject: [PATCH] Fix Type Copy --- src/DeepCopy/CopierGenerator.cs | 3 +++ test/DeepCopy.UnitTests/CopyTests.cs | 8 ++++++++ 2 files changed, 11 insertions(+) diff --git a/src/DeepCopy/CopierGenerator.cs b/src/DeepCopy/CopierGenerator.cs index 008e4db..0f77e6f 100644 --- a/src/DeepCopy/CopierGenerator.cs +++ b/src/DeepCopy/CopierGenerator.cs @@ -23,6 +23,9 @@ public static T Copy(T original, CopyContext context) if (original == null) return original; var type = original.GetType(); + + if (type.FullName?.Equals("System.RuntimeType", StringComparison.InvariantCulture) ?? false) return original; + if (type == GenericType) return MatchingTypeCopier(original, context); var result = Copiers.GetOrAdd(type, GenerateCopier); diff --git a/test/DeepCopy.UnitTests/CopyTests.cs b/test/DeepCopy.UnitTests/CopyTests.cs index 6dd07e4..dc1cb2c 100644 --- a/test/DeepCopy.UnitTests/CopyTests.cs +++ b/test/DeepCopy.UnitTests/CopyTests.cs @@ -8,6 +8,14 @@ namespace DeepCopy.UnitTests [Trait("TestCategory", "BVT")] public class CopyTests { + [Fact] + public void CanCopyTypes() + { + var original = typeof(string); + var result = DeepCopier.Copy(original); + Assert.Same(original, result); + } + [Fact] public void CanCopyStrings() {