![]() |
VOOZH | about |
dotnet add package ObjectTreeWalker --version 0.12.3
NuGet\Install-Package ObjectTreeWalker -Version 0.12.3
<PackageReference Include="ObjectTreeWalker" Version="0.12.3" />
<PackageVersion Include="ObjectTreeWalker" Version="0.12.3" />Directory.Packages.props
<PackageReference Include="ObjectTreeWalker" />Project file
paket add ObjectTreeWalker --version 0.12.3
#r "nuget: ObjectTreeWalker, 0.12.3"
#:package ObjectTreeWalker@0.12.3
#addin nuget:?package=ObjectTreeWalker&version=0.12.3Install as a Cake Addin
#tool nuget:?package=ObjectTreeWalker&version=0.12.3Install as a Cake Tool
ObjectGraphWalker is a powerful utility library that enables seamless traversal over C# object properties and fields, Node.js style. Designed with performance and flexibility in mind, it leverages dynamic code generation and caching to provide efficient traversal capabilities.
Simply install the NuGet Package
A basic example that demonstrates how to traverse an object and access its properties:
var someObject = new SomeObject();
var iterator = new ObjectMemberIterator();
iterator.Traverse(someObject, (in MemberAccessor accessor) =>
{
var propertyValue = accessor.GetValue();
prop.SetValue(/* some other value */);
});
An advanced example that shows how to use predicates to filter members and control the traversal behavior:
var someObject = new SomeObject();
var iterator = new ObjectMemberIterator();
iterator.Traverse(someObject, (in MemberAccessor accessor) =>
{
var propertyValue = accessor.GetValue();
prop.SetValue(/* some other value */);
//filtering for selective iteration is a simple lambda
}, (in MemberAccessor accessor) => accessor.Name != "Foo1" && accessor.MemberType != MemberType.Property);
You can easily create deep clones of any object using the provided extension method:
var someObject = new SomeObject();
var clone = someObject.DeepClone();
Any contributions are welcome 😃
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net5.0 net5.0 was computed. net5.0-windows net5.0-windows was computed. net6.0 net6.0 was computed. net6.0-android net6.0-android was computed. net6.0-ios net6.0-ios was computed. net6.0-maccatalyst net6.0-maccatalyst was computed. net6.0-macos net6.0-macos was computed. net6.0-tvos net6.0-tvos was computed. net6.0-windows net6.0-windows was computed. net7.0 net7.0 was computed. net7.0-android net7.0-android was computed. net7.0-ios net7.0-ios was computed. net7.0-maccatalyst net7.0-maccatalyst was computed. net7.0-macos net7.0-macos was computed. net7.0-tvos net7.0-tvos was computed. net7.0-windows net7.0-windows was computed. net8.0 net8.0 was computed. net8.0-android net8.0-android was computed. net8.0-browser net8.0-browser was computed. net8.0-ios net8.0-ios was computed. net8.0-maccatalyst net8.0-maccatalyst was computed. net8.0-macos net8.0-macos was computed. net8.0-tvos net8.0-tvos was computed. net8.0-windows net8.0-windows was computed. net9.0 net9.0 was computed. net9.0-android net9.0-android was computed. net9.0-browser net9.0-browser was computed. net9.0-ios net9.0-ios was computed. net9.0-maccatalyst net9.0-maccatalyst was computed. net9.0-macos net9.0-macos was computed. net9.0-tvos net9.0-tvos was computed. net9.0-windows net9.0-windows was computed. net10.0 net10.0 is compatible. net10.0-android net10.0-android was computed. net10.0-browser net10.0-browser was computed. net10.0-ios net10.0-ios was computed. net10.0-maccatalyst net10.0-maccatalyst was computed. net10.0-macos net10.0-macos was computed. net10.0-tvos net10.0-tvos was computed. net10.0-windows net10.0-windows was computed. |
| .NET Core | netcoreapp3.0 netcoreapp3.0 was computed. netcoreapp3.1 netcoreapp3.1 was computed. |
| .NET Standard | netstandard2.1 netstandard2.1 is compatible. |
| MonoAndroid | monoandroid monoandroid was computed. |
| MonoMac | monomac monomac was computed. |
| MonoTouch | monotouch monotouch was computed. |
| Tizen | tizen60 tizen60 was computed. |
| Xamarin.iOS | xamarinios xamarinios was computed. |
| Xamarin.Mac | xamarinmac xamarinmac was computed. |
| Xamarin.TVOS | xamarintvos xamarintvos was computed. |
| Xamarin.WatchOS | xamarinwatchos xamarinwatchos was computed. |
Showing the top 3 NuGet packages that depend on ObjectTreeWalker:
| Package | Downloads |
|---|---|
|
RoguelikeToolkit.Entities
Package Description |
|
|
DeepCloneBenchmark
Package Description |
|
|
IteratorBenchmark
Package Description |
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 0.12.3 | 163 | 3/16/2026 |
| 0.12.2 | 140 | 3/16/2026 |
| 0.11.1 | 541 | 4/25/2024 |
| 0.11.0 | 284 | 4/25/2024 |
| 0.10.18 | 852 | 8/21/2023 |
| 0.10.14 | 289 | 7/6/2023 |
| 0.10.13 | 358 | 5/27/2023 |
| 0.10.11 | 389 | 4/4/2023 |
| 0.10.8 | 602 | 1/14/2023 |
| 0.10.7 | 467 | 1/14/2023 |
| 0.10.5 | 473 | 12/25/2022 |
| 0.10.4 | 462 | 12/24/2022 |
| 0.10.3 | 2,218 | 12/3/2022 |
| 0.10.2 | 509 | 12/3/2022 |
| 0.9.4 | 489 | 11/29/2022 |
| 0.9.3 | 467 | 11/29/2022 |
| 0.9.2 | 660 | 11/7/2022 |
| 0.9.1 | 627 | 10/20/2022 |
| 0.9.0 | 593 | 10/19/2022 |
| 0.8.3 | 581 | 10/19/2022 |
:bug: Bug Fixes:
- [`bbfc4ca`](https://github.com/myarichuk/Library.Template/commit/bbfc4ca34650fca71e86bbaa3c177ca892bccf85) - ensure release is created (add missing parameter) *(commit by [@myarichuk](https://github.com/myarichuk))*