DeepCloneGenerator 0.7.4
There is a newer version of this package available.
See the version list below for details.
See the version list below for details.
dotnet add package DeepCloneGenerator --version 0.7.4
NuGet\Install-Package DeepCloneGenerator -Version 0.7.4
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="DeepCloneGenerator" Version="0.7.4" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="DeepCloneGenerator" Version="0.7.4" />
<PackageReference Include="DeepCloneGenerator" />
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add DeepCloneGenerator --version 0.7.4
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
#r "nuget: DeepCloneGenerator, 0.7.4"
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package DeepCloneGenerator@0.7.4
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=DeepCloneGenerator&version=0.7.4
#tool nuget:?package=DeepCloneGenerator&version=0.7.4
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
Deep clone generator
Deep clone generator is a library that utilizes source generator to generate a DeepClone()
method which clones classes
by its values.
Usage
- Install package using
dotnet add DeepCloneGenerator
- Add the
[GenerateDeepClone]
attribute on top of apartial class
that you want to generate aDeepClone()
method for - Done! You now have a
DeepClone()
method
Supported type members
The following type members are supported:
- Fields
- required Fields
- Properties
- required Properties
Supported types
The following types are supported for deep cloning:
- Any class annotated with
[GenerateDeepClone]
- Any built-in value type
- Any concrete class which implements
ICollection<T>
and has a parameterless ctor (likeList<T>
andHashSet<T>
) - Any
IEnumerable<T>
(the clone will have a List<T> with the values of the original cloned) - Any concrete class which implements
IDictionary<T, V>
and has a parameterless ctor (likeDictionary<T, V>
) - Any struct
- Any record
Known limitations
- When collections are made with certain characteristics, those characteristics are currently lost (e.g.: an EqualityComparer for a Dictionary)
- Classes with primary constructors are not yet supported
Future plans
- Add analyzers which will inform of known limitations as warnings when DeepClone functionality is not working as intended
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
.NET Core | netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
.NET Standard | netstandard2.0 is compatible. netstandard2.1 was computed. |
.NET Framework | net461 was computed. net462 was computed. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 was computed. net481 was computed. |
MonoAndroid | monoandroid was computed. |
MonoMac | monomac was computed. |
MonoTouch | monotouch was computed. |
Tizen | tizen40 was computed. tizen60 was computed. |
Xamarin.iOS | xamarinios was computed. |
Xamarin.Mac | xamarinmac was computed. |
Xamarin.TVOS | xamarintvos was computed. |
Xamarin.WatchOS | xamarinwatchos was computed. |
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
-
.NETStandard 2.0
- DeepCloneGenerator.Analyzers (>= 0.7.4)
- DeepCloneGenerator.Generator (>= 0.7.4)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
Version | Downloads | Last Updated |
---|---|---|
0.7.6 | 200 | 1/11/2024 |
0.7.5 | 156 | 1/4/2024 |
0.7.4 | 128 | 1/4/2024 |
0.7.3 | 137 | 1/3/2024 |
0.7.2 | 126 | 1/3/2024 |
0.7.0 | 144 | 1/3/2024 |
0.6.5 | 131 | 1/3/2024 |
0.6.4 | 122 | 1/3/2024 |
0.6.3 | 141 | 1/2/2024 |
0.6.2 | 133 | 1/2/2024 |
0.6.0 | 127 | 1/2/2024 |
0.5.1 | 214 | 1/2/2024 |
0.5.0 | 197 | 1/2/2024 |
0.4.2 | 142 | 12/31/2023 |
0.4.1 | 183 | 12/31/2023 |
0.4.0 | 198 | 12/31/2023 |
0.3.1 | 194 | 12/29/2023 |
0.3.0 | 161 | 12/29/2023 |
0.2.1 | 179 | 12/28/2023 |
0.2.0 | 192 | 12/28/2023 |
0.1.27 | 158 | 12/28/2023 |
0.1.26 | 229 | 12/27/2023 |
0.1.25 | 165 | 12/27/2023 |
0.1.24 | 157 | 12/24/2023 |
0.1.24-pullrequest0001-0004 | 197 | 12/24/2023 |
0.1.23 | 180 | 12/24/2023 |