WizardWrx .NET API, version 7.15
-
The https://github.com/txwizard/WizardWrx\_NET\_API is now at version 7.15, with one subtle bug smashed flat and a few interesting, but obscure changes. As always full documentation is at https://txwizard.github.io/WizardWrx\_NET\_API/. What makes this especially interesting is the way the bug that motivated this update came to the surface; it appeared in the output dumped into the Visual Studio debugger window of an application that consumed it. Numerous distractions interfered with finishing the repair. The event that pushed me to finish it was a very minor addition that I needed to make to
WizardWrx.Common.dll
, one of three libraries that underpin the whole API. The common library is composed almost entirely of constants, to which I needed to add a few new ones so that I can use them as building blocks from which to build other string constants. Though all of them were already defined as character constants, you cannot mix character and string constants in the definition of a new string constant. The WizardWrx .NET API is a set of libraries that expose a rich set of general-purpose helper classes for use in projects that target the Microsoft .NET Framework. Among other things, they offer the following. 1) Syntactic sugar, such as the routines that identify the first, last, and next-to-last iteration of aFOR
loop, convert subscripts to and from ordinals (zero-based versus one-based subscripts), compute a modulus (remainder), and perform decimal shifts 2) Prse dynamically generated format control strings (used withstring.format
and such), 3) Reduce computing message digests to a single method call 4) Transparently convert Registry values of all types into native types (strings, integers of various sizes, and byte arrays) 5) Parse command line arguments for any program (command line or graphical), 6) Add numerous extension methods tosystem.string
andsystem.IO.FileOnfo
7) Simplify working with the match groups returned by the Regular Expression engine 8) Dynamically generate format strings to compactly represent data in tabular format 9) Implement the Singleton design pattern in a way that fully leverages certain guarantees about the behavior of static constructors 10) Format and log exception reports, optionally recording them in a Windows Event Log and efficiently reporting them on the two standard console output streams, taking into account when either or both has been redirected to a fil