Aspects. Diagnostics. ObjectTextDumper
* The dump output is separated from the targeted dump media by the familiar TextWriter interface
* The programmer can dump the value of any type of object: primitive and enum types (including those marked with FlagsAttribute), custom classes, struct-s, collections, etc.
* For complex type objects (classes and structs) the dumper outputs the names and the values of the properties
* The dump is recursive: the complex members of the dumped object are dumped indented
* Dumps the elements of sequences (arrays, lists, dictionaries, etc.)
* Handles circular references
* The developers can easily customize various aspects of the dump by using an attribute (DumpAttribute) on the classes and their members, such as:
- the order in which the properties are dumped
- formatting of the property names and/or values
- suppressing the dump of some uninteresting properties
- masking the values of sensitive properties (e.g. PII)
- the depth of the recursion into complex members
- the maximum number of dumped elements of sequence properties
* The dumper picks the customization attributes also from buddy classes declared with MetadataTypeAttribute
* Even if the class doesn't have any attributes, the programmer can still pass a metadata class as a separate parameter to the dumping method. This allows for control over the dump of BCL and third party classes
* Built and tested with .NET 4.6.2, 4.7.1, 4.7.2
For more information see the documentation at https://github.com/vmelamed/vm/blob/master/Aspects/Diagnostics/ObjectDumper.md.
See the version list below for details.
Install-Package vm.Aspects.Diagnostics.ObjectTextDumper -Version 2.0.1
dotnet add package vm.Aspects.Diagnostics.ObjectTextDumper --version 2.0.1
<PackageReference Include="vm.Aspects.Diagnostics.ObjectTextDumper" Version="2.0.1" />
paket add vm.Aspects.Diagnostics.ObjectTextDumper --version 2.0.1
Note that this package derives from the package AspectObjectDumper v.1.10.2 where I removed the dependency on the Common Service Locator.
Technically this is a breaking change. However instead of just bumping the major version, I decided to also go a step further
and rename the package to vm.Aspects.Diagnostics.ObjectTextDumper for consistency with all vm.Aspects.* packages and libraries out there.
This is a breaking change only for clients who have their own implementation of vm.Aspects.Diagnostics.IMemberInfoComparer registered in a
Common Service Locator compatible DI container. As a result, if clients need to implement their own member comparer, they can pass a reference to it in the constructor of ObjectTextDumper object.
Small changes in the documentation.
This package has no dependencies.
This package is not used by any popular GitHub repositories.