From eb3083cf9ea29f4803f8ddaa6ed37111f4719c6a Mon Sep 17 00:00:00 2001 From: Markus Ewald Date: Wed, 1 Feb 2012 22:45:15 +0000 Subject: [PATCH] Fixed a compilation error when targeting Windows Phone; ChainStream now uses a params list for its constructor; added object cloning framework with support for deep and shallow cloning as well as cloning based on fields or properties git-svn-id: file:///srv/devel/repo-conversion/nusu@223 d2e56fa2-650e-0410-a79f-9358c0239efd --- Nuclex.Support (net-4.0).csproj | 14 +- Nuclex.Support (xna-4.0-phone7).csproj | 13 + Nuclex.Support (xna-4.0-xbox360).csproj | 8 + Source/AffineThreadPool.cs | 4 +- Source/Cloning/CloningParameters.cs | 65 ++++ Source/Cloning/ExpressionTreeCloner.cs | 153 ++++++++ Source/Cloning/ICloneFactory.cs | 65 ++++ Source/Cloning/IStateCopier.cs | 90 +++++ Source/Cloning/ReflectionCloner.Test.cs | 450 ++++++++++++++++++++++++ Source/Cloning/ReflectionCloner.cs | 429 ++++++++++++++++++++++ Source/IO/ChainStream.cs | 2 +- Source/Semaphore.cs | 2 +- 12 files changed, 1290 insertions(+), 5 deletions(-) create mode 100644 Source/Cloning/CloningParameters.cs create mode 100644 Source/Cloning/ExpressionTreeCloner.cs create mode 100644 Source/Cloning/ICloneFactory.cs create mode 100644 Source/Cloning/IStateCopier.cs create mode 100644 Source/Cloning/ReflectionCloner.Test.cs create mode 100644 Source/Cloning/ReflectionCloner.cs diff --git a/Nuclex.Support (net-4.0).csproj b/Nuclex.Support (net-4.0).csproj index 6cb17a6..5303e18 100644 --- a/Nuclex.Support (net-4.0).csproj +++ b/Nuclex.Support (net-4.0).csproj @@ -60,6 +60,14 @@ AffineThreadPool.cs + + + + + + ReflectionCloner.cs + + Deque.cs @@ -280,7 +288,11 @@ Foundation.snk - + + + + +