BOG.SwissArmyKnife 1.13.0

dotnet add package BOG.SwissArmyKnife --version 1.13.0
                    
NuGet\Install-Package BOG.SwissArmyKnife -Version 1.13.0
                    
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="BOG.SwissArmyKnife" Version="1.13.0" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="BOG.SwissArmyKnife" Version="1.13.0" />
                    
Directory.Packages.props
<PackageReference Include="BOG.SwissArmyKnife" />
                    
Project file
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 BOG.SwissArmyKnife --version 1.13.0
                    
#r "nuget: BOG.SwissArmyKnife, 1.13.0"
                    
#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 BOG.SwissArmyKnife@1.13.0
                    
#: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=BOG.SwissArmyKnife&version=1.13.0
                    
Install as a Cake Addin
#tool nuget:?package=BOG.SwissArmyKnife&version=1.13.0
                    
Install as a Cake Tool

alt text

BOG.SwissArmyKnife

branch Currently
master Build status
release Build status
develop Build status

This is a .NET 10 port of BOG.Framework, which is deprecated.

The classes are:

Accordion / AccordionItem<T>

Provides tracking of a number (ordinal) sequence by an in-progress list, from which items are retrieved and later marked as retry or complete. Includes time-out to reissue work after a period of time. Allows large sequences of numbers (even billions and higher) to be processed, with the accordion class providing the tracking.

See the NUnit project for examples.

AssemblyInfo

Provides the Binary file executing (in .NET core it's always the .DLL not the .EXE'), version and build date.

BabbleOn

Allows real-time monitoring of a service or other headless operation from any Telnet client.

CipherUtility

A class for enciphering / deciphering. Allows client to override the SymmetricAlgorithm class used for cipher method.

DetailedException

Enables formatting of an exception with:

  • Optional header/footer content:
  • One of three level of details for display or logging: User, Machine or Enterprise.
  • Optional masking of user and password, or only password, in URLs and connection strings.

Formatting

Provides methods for

  • Squashing a number into Kilo, Mega, ..., Yota (e.g. 2,325,078 becomes 2.33M).
  • Writing out a dollar amount into a phrase as it would appear on a paper check (e.g. FIVE HUNDRED AND 50/100).

Fuse

Similar to an electrical fuse: records frequency and/or volume, and reports when thresholds are exceeded.

Hasher

Various hashing methods chosen by an enumerator.

Iteration

A class used to manage very large and deep argument sets, where the extropolation can result in millions or even billions of combinations. Designed to support multi-level nested looping, where the values at each level for an iteration can be derived by passing in a zero-based index--and vice-versa. Uses the IterationItem class for an iteration level.

Logger:

Provides a method of logging to a file, using a timestamped filename and rollover to a new file when either a file size threshold is met, or when the maximum elapsed time has exceeded a threshold.

MathEx:

Holder for derived mathematical methods.

MemoryList

A List<> type class, which can enforce unique entries (even if an item is removed), and allows the client to specify the order in which items are recalled: FIFO, LIFO or random. Ideal for workflow processes, which may receive many requests for the same item, but restrict their action to once per item.

PasswordHash

A password hashing algorithm encapsulated in a class. Fairly secure, and not overly complex.

Scrape

Contains methods for harvesting content with regular expressions. See the demo form to understand its capability. Also contains classes MemoryItem and MemoryList, which extend the capabilties of the core generic List<> class.

SecureGram

Creates an encrypted container which can be sent over a TCP/UDP connection between apps. Supports automatic internal compression for large content.

SerializableDictionary

A replacement for the standard Dictionary<K,V> class, which does not allow serialization.

SerializerXML

A static class containing methods to serialize and deserialize XML between objects, strings and files. Also contains methods to convert to/from a secure transport container.

SerializerJSON

A static class containing methods to serialize and deserialize JSON between objects, strings and files. Also contains methods to convert to/from a secure transport container.

SettingsDictionary

A kind of Dictionary<string,object> with internal methods to load, save and merge. Originally designed as a class to store user settings for a desktop application, outside of the app.config architecture.

StringEx

Some useful string methods:

  • Search and replace with wildcards
  • Check against flexible wildcard pattern without using regular expressions. E.g. "The * fox * jump??"
  • Currency parsing
  • Hex to/from methods.
  • Filtering (include and exclude)
  • Placeholder replacement for allowing Environment, Common Folders and Custom Dictionary replacement in a string, i.e. directory path, etc.

Url

A Url parser which is designed to validate listener url's for an HttpListener object, is less restrictive on host portions, and can rebuild a URL after parsing it to remove unnecessary URL encoding.

Product Compatible and additional computed target framework versions.
.NET net9.0 is compatible.  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. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages (2)

Showing the top 2 NuGet packages that depend on BOG.SwissArmyKnife:

Package Downloads
BOG.DropZone.Client

A client for calling the BOG.DropZone API, which supports optional encryption.

BOG.DropZone.Common

A dependency for BOG.DropZone.Client

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
1.13.0 98 2/23/2026
1.12.0 96 2/17/2026
1.11.1 128 1/12/2026
1.11.0 108 1/11/2026
1.10.0 349 5/28/2025
1.9.2 267 3/17/2025
1.9.1 215 12/2/2024
1.9.0 275 4/3/2024
1.8.0 459 8/24/2023
1.7.17 294 7/20/2023
1.7.16 295 7/20/2023
1.7.15 346 4/6/2023
1.7.13 514 12/28/2022
1.7.11 465 12/12/2022
1.7.10 646 7/28/2022
1.7.8 2,585 4/26/2021
1.7.7 614 2/28/2021
1.7.6 616 2/28/2021
1.7.5 1,312 12/30/2020
1.7.4 689 9/18/2020
Loading failed

Initial release