Skip to content

Releases: force-net/DeepCloner

0.10.4

29 Apr 14:30
Compare
Choose a tag to compare

In this release default comparers are excluded from cloning.
It fix for .NET6 and HashSet<string> . Other cases can be also fixed too.

0.10.3

20 Oct 19:31
Compare
Choose a tag to compare

This release contains some improvements and bug fixes.

  • Custom dictionary implementation for faster reference counting (and faster cloning)
  • Excluded DBNull from cloning
  • Rewrote code for more correct cloning of objects forbidden for cloning (mainly for Shallow cloning)
  • Better handling for structs casted to object
  • Increased speed for cloning simple tuples
  • Added some protection for parallel cloning objects with read-only fields
  • Optimized copying read-only fields for .net core
  • Fixed copying multi-dim arrays with 0-length of some dimension
  • 2-dim arrays were processed by generic (non-optimized) way

0.10.2

14 Dec 18:15
Compare
Choose a tag to compare

In this release we're removed System.Reflection namespace from cloning, because some classes in System.Reflection.Emit cause unexpected crashes in runtime. Also, there are no significant reasons to clone these classes.

Also, checking for empty constructors is improved to reduce number of exceptions (internally catched, but can slow down copying).

0.10.1

26 Jun 20:21
Compare
Choose a tag to compare

This release just contains some of bugfixes:

  • Removed cloning of COM objects (this is fake objects, not real, so real cloning is useless)
  • Removed cloning of Remoting objects (lot of issues and internal .NET binding to these objects)
  • Removed cloning of System.RuntimeType
  • For dotnet core, removed cloning of it DI to reduce number issues with it

As result, DeepCloner will work more stable.

0.10.0

04 Feb 09:40
Compare
Choose a tag to compare

In this release we've added new feature: cloning to existing object. It can be useful for fast wrapper creation or for keeping references to existing object (e.g. for locking).

0.9.4

14 Jan 14:29
Compare
Choose a tag to compare

This is small technical release. In this release we've added support for .NET Core (only Safe variant). Version for .NET 4.0 has same functionality as in previous release.

0.9.3

16 Feb 19:15
Compare
Choose a tag to compare

After analyzing, we decide to forbid clone for some system handles, because it causes unpredictable erros on destruction (e.g. multiple closing of one handle). This leads to strange erros in GC thread. So, better just to do nothing with such objects.

0.9.2

14 Feb 18:22
Compare
Choose a tag to compare

Fixed small issue with cloning primitive types casted as an object

0.9.1

11 Feb 20:52
Compare
Choose a tag to compare

In this release we are greatly increased cloning speed for some objects (up to 2x times). It was made by analyzing constructors and improvements in reference counter code.
Also, there are some small refactorings that slighlty increased speed

Also, we fix 2 bugs, one with possible multiple object copying and second, is more serious, but very rare: safe variant of cloning did not copy readonly fields. Now, this is fixed by some hacks.

And at last, we have checked performance of this library related to others and have found, that DeepCloner is fastest cloning library!

0.9.0

08 Feb 21:21
Compare
Choose a tag to compare

We want to publish only some fixes improvements with array (fix for reference count in array types, support for multi-dimensional array and non zero-based arrays).

But we also have finished work with another implementation of cloning code. New code is based on expressions (first variant is based on msil). This implemenation can work not in full trust environment, but it is slightly slower than msil variant. So, library will try to use faster msil variant and if it fails, library will switch to safer variant.