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() {