ObjectDelta 2.1.0
See the version list below for details.
dotnet add package ObjectDelta --version 2.1.0
NuGet\Install-Package ObjectDelta -Version 2.1.0
<PackageReference Include="ObjectDelta" Version="2.1.0" />
<PackageVersion Include="ObjectDelta" Version="2.1.0" />
<PackageReference Include="ObjectDelta" />
paket add ObjectDelta --version 2.1.0
#r "nuget: ObjectDelta, 2.1.0"
#:package ObjectDelta@2.1.0
#addin nuget:?package=ObjectDelta&version=2.1.0
#tool nuget:?package=ObjectDelta&version=2.1.0
ObjectDelta
A libary that creates a delta of two object instances.
The library is inspired by a blog post of Daniel Wertheim about
producing a delta of two objects of the same type using the library Structurizer.
Unfortunately Structurizer will not provide index information
for properties with a null value, the property of a collection and for null collection items.
This information is needed to be able to record object changes from null to a value and vice versa.
I decided to create a library based on Structurizer that fits
my needs for the delta creation.
Usage
Customer first = new Customer
{
FirstName = "Sherlock",
LastName = "Olmes",
Address = new Address
{
Street = "Baker Street",
Number = "900",
Zip = "NW1",
City = "London",
Country = "England"
},
Tags = new string[] { "detective", "smart" }
};
Customer second = new Customer
{
FirstName = "Sherlock",
LastName = "Holmes",
Address = new Address
{
Street = "Baker Street",
Number = "221b",
Zip = "NW1",
City = "London",
Country = "England"
},
Tags = new string[] { "detective", "smart", "addict" }
};
ObjectDelta<Customer> result = ObjectComparer.Compare(first, second);
The resulting ObjectDelta<Customer> provides a flat list containing the deltas for every property,
inclusing nested properties of complex types (like the Address) and colleection items.
The output of ToString() of the result of operation above:
LastName (Olmes => Holmes)
Address (ConsoleApp1.Address => ConsoleApp1.Address)
Address.Number (900 => 221b)
Tags (System.String[] => System.String[])
Tags[1] (addict => genius)
References
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net7.0 is compatible. 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. |
-
net7.0
- Fluxera.Guards (>= 7.1.0)
- Fluxera.Utilities (>= 7.1.0)
- JetBrains.Annotations (>= 2022.3.1)
- ObjectStructure (>= 2.1.0)
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 |
|---|---|---|
| 9.0.1 | 1,632 | 3/3/2025 |
| 9.0.0 | 772 | 11/14/2024 |
| 8.0.5 | 268 | 11/1/2024 |
| 8.0.4 | 264 | 7/9/2024 |
| 8.0.3 | 251 | 6/2/2024 |
| 8.0.2 | 1,282 | 3/19/2024 |
| 8.0.1 | 1,364 | 11/24/2023 |
| 8.0.0 | 360 | 11/16/2023 |
| 2.1.0 | 1,505 | 1/18/2023 |
| 2.0.0 | 1,028 | 11/19/2022 |
| 1.0.2 | 3,195 | 6/7/2022 |
| 1.0.1 | 609 | 6/3/2022 |
| 1.0.0 | 2,021 | 4/18/2022 |