Cuemon.Core 9.0.0

Prefix Reserved
dotnet add package Cuemon.Core --version 9.0.0                
NuGet\Install-Package Cuemon.Core -Version 9.0.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="Cuemon.Core" Version="9.0.0" />                
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add Cuemon.Core --version 9.0.0                
#r "nuget: Cuemon.Core, 9.0.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.
// Install Cuemon.Core as a Cake Addin
#addin nuget:?package=Cuemon.Core&version=9.0.0

// Install Cuemon.Core as a Cake Tool
#tool nuget:?package=Cuemon.Core&version=9.0.0                

About

An open-source project (MIT license) that targets and complements the Microsoft .NET platform. It provides vast ways of possibilities for all breeds of coders, programmers, developers and the likes thereof. Your ideal companion for .NET 8, .NET 7, .NET 6, .NET Standard 2 and .NET Framework 4.6.2 and newer.

It is, by heart, free, flexible and built to extend and boost your agile codebelt.

Cuemon for .NET

The Cuemon namespace contains fundamental types such as value and reference types, factories and utility classes, interfaces, attributes and feature rich delegates that support functional programming on a whole new level. The namespace is an addition to the System namespace.

More documentation available at our documentation site:

Product Compatible and additional computed target framework versions.
.NET net5.0 was computed.  net5.0-windows was computed.  net6.0 was computed.  net6.0-android was computed.  net6.0-ios was computed.  net6.0-maccatalyst was computed.  net6.0-macos was computed.  net6.0-tvos was computed.  net6.0-windows was computed.  net7.0 was computed.  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 is compatible.  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 is compatible. 
.NET Core netcoreapp2.0 was computed.  netcoreapp2.1 was computed.  netcoreapp2.2 was computed.  netcoreapp3.0 was computed.  netcoreapp3.1 was computed. 
.NET Standard netstandard2.0 is compatible.  netstandard2.1 was computed. 
.NET Framework net461 was computed.  net462 was computed.  net463 was computed.  net47 was computed.  net471 was computed.  net472 was computed.  net48 was computed.  net481 was computed. 
MonoAndroid monoandroid was computed. 
MonoMac monomac was computed. 
MonoTouch monotouch was computed. 
Tizen tizen40 was computed.  tizen60 was computed. 
Xamarin.iOS xamarinios was computed. 
Xamarin.Mac xamarinmac was computed. 
Xamarin.TVOS xamarintvos was computed. 
Xamarin.WatchOS xamarinwatchos was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
  • .NETStandard 2.0

    • No dependencies.
  • net8.0

    • No dependencies.
  • net9.0

    • No dependencies.

NuGet packages (26)

Showing the top 5 NuGet packages that depend on Cuemon.Core:

Package Downloads
Cuemon.IO

The Cuemon.IO namespace contains types primarily focusing on configuration options for IO related operations. The namespace is an addition to the System.IO namespace.

Cuemon.Threading

The Cuemon.Threading namespace contains types related to working with long-running concurrent loops and regions that utilizes both synchronous and asynchronous delegates. The namespace is an addition to the System.Threading namespace.

Cuemon.Diagnostics

The Cuemon.Diagnostics namespace contains types that provide ways for developers to describe exceptions including evidence to why an operation faulted. Also includes a flexible, generic and lambda friendly way to perform both synchronous and asynchronous time measuring operations. The namespace is an addition to the System.Diagnostics namespace.

Cuemon.AspNetCore

The Cuemon.AspNetCore namespace contains types focusing on providing means for easier plumber coding in the ASP.NET Core pipeline while serving some nice of the shell concrete implementation as well. The namespace is an addition to the Microsoft.AspNetCore namespace.

Cuemon.Security.Cryptography

The Cuemon.Security.Cryptography namespace contains types related to cryptographic hashing (both keyed and non-keyed) and a ready-to-use implementation of the Advanced Encryption Standard (AES) symmetric algorithm. The namespace is an addition to the System.Security.Cryptography namespace.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated
9.0.0 2,029 11/13/2024
9.0.0-rc.1 573 11/11/2024
9.0.0-preview.12 163 10/17/2024
9.0.0-preview.11 266 10/9/2024
9.0.0-preview.10 420 10/5/2024
9.0.0-preview.9 794 9/26/2024
9.0.0-preview.8 455 9/23/2024
9.0.0-preview.7 106 9/21/2024
9.0.0-preview.6 62 9/18/2024
9.0.0-preview.5 199 9/13/2024
9.0.0-preview.4 572 9/6/2024
9.0.0-preview.3 56 8/31/2024
9.0.0-preview.2 77 8/23/2024
9.0.0-preview.1 69 8/17/2024
8.3.2 5,863 8/4/2024
8.3.1 2,321 6/2/2024
8.3.0 3,729 4/9/2024
8.2.0 4,231 3/3/2024
8.1.0 5,488 2/10/2024
8.1.0-rc1 3,414 2/8/2024
8.1.0-preview.52 147 2/5/2024
8.1.0-preview.20 351 1/22/2024
8.1.0-preview 4,687 1/16/2024
8.0.1 6,234 1/11/2024
8.0.0 10,138 11/14/2023
8.0.0-rc2 5,155 11/13/2023
8.0.0-rc1 5,318 11/7/2023
8.0.0-preview.183 136 11/13/2023
8.0.0-preview.176 114 11/12/2023
8.0.0-preview.158 61 11/9/2023
7.1.0 23,199 12/11/2022
7.0.0 23,245 11/9/2022
7.0.0-rc.2 121 11/3/2022
7.0.0-rc.1 123 10/26/2022
7.0.0-alpha.2 137 10/16/2022
7.0.0-alpha.1 226 9/23/2022
7.0.0-alpha 9,624 7/12/2022
6.4.1 33,520 5/8/2022
6.4.0 24,320 1/24/2022
6.4.0-rc 9,821 1/23/2022
6.3.0 15,147 11/28/2021
6.2.0 27,145 5/30/2021
6.1.0 14,356 5/16/2021
6.0.1 14,632 5/3/2021
6.0.1-rc 10,356 5/3/2021
6.0.0 16,426 4/18/2021
6.0.0-rc.23 175 4/18/2021
6.0.0-rc.21 148 4/12/2021
6.0.0-rc.20 169 4/1/2021
6.0.0-rc.18 257 3/22/2021
6.0.0-rc.17 154 3/14/2021
6.0.0-rc.16 194 3/7/2021
6.0.0-rc.15 175 3/4/2021
6.0.0-rc.14 198 3/4/2021
6.0.0-rc.12 202 3/3/2021
6.0.0-rc.6 183 2/28/2021
6.0.0-rc.2 198 2/28/2021
5.0.2019.40 12,655 2/10/2019
5.0.2019.30 3,330 1/28/2019
5.0.2019.20 1,925 1/20/2019
5.0.2018.310 5,048 11/6/2018
5.0.2018.256 2,042 10/29/2018
5.0.2018.253 4,424 9/18/2018
5.0.2018.251 7,737 9/10/2018
5.0.2018.250 6,305 9/9/2018
4.3.2018.2200 6,989 8/8/2018
4.3.2018.2070 6,166 7/27/2018
4.2.2018.840 7,937 2/9/2018

Version 9.0.0
Availability: .NET 9, .NET 8 and .NET Standard 2.0
 
# ALM
- CHANGED Dependencies to latest and greatest with respect to TFMs
 
# Breaking Changes
- REMOVED DefaultYamlConverter class from the Cuemon.Runtime.Serialization.Converters namespace
- REMOVED YamlSerializer class from the Cuemon.Runtime.Serialization namespace
- REMOVED YamlSerializerOptions class from the Cuemon.Runtime.Serialization namespace
- REMOVED YamlTextReader class from the Cuemon.Runtime.Serialization namespace
- REMOVED YamlTextWriter class from the Cuemon.Runtime.Serialization namespace
- REMOVED YamlTokenType class from the Cuemon.Runtime.Serialization namespace
- REMOVED ExceptionConverter class from the Cuemon.Text.Yaml.Converters namespace
- REMOVED ExceptionDescriptorConverter class from the Cuemon.Text.Yaml.Converters namespace
- REMOVED YamlConverter class from the Cuemon.Text.Yaml.Converters namespace
- REMOVED YamlFormatter class from the Cuemon.Text.Yaml.Converters namespace
- REMOVED YamlFormatterOptions class from the Cuemon.Text.Yaml.Converters namespace
- REMOVED YamlConverterFactory class from the Cuemon.Text.Yaml namespace
- REMOVED YamlNamingPolicy class from the Cuemon.Text.Yaml namespace
- RENAMED ReservedKeywordException class in the Cuemon namespace to ArgumentReservedKeywordException
- REMOVED SafeInvokeAsync methods from the Patterns class in the Cuemon namespace (moved to AsyncPatterns class in the Cuemon.Threading assembly)
- RENAMED TaskActionFactory class in the Cuemon namespace to AsyncActionFactory in the Cuemon.Threading namespace
- RENAMED TaskFuncFactory class in the Cuemon namespace to AsyncFuncFactory in the Cuemon.Threading namespace
- RENAMED Template class in the Cuemon namespace to MutableTuple
- RENAMED TemplateFactory class in the Cuemon namespace to MutableTupleFactory
- REMOVED ActionFactory static class from the Cuemon namespace (moved to the Cuemon.Extensions namespace in the Cuemon.Extensions.Core assembly)
- REMOVED FuncFactory static class from the Cuemon namespace (moved to the Cuemon.Extensions namespace in the Cuemon.Extensions.Core assembly)
- REMOVED TesterFuncFactory static class from the Cuemon namespace (moved to the Cuemon.Extensions namespace in the Cuemon.Extensions.Core assembly)
- REMOVED BinaryPrefix class from the Cuemon namespace
- REMOVED BitStorageCapacity class from the Cuemon namespace
- REMOVED BitUnit class from the Cuemon namespace
- REMOVED ByteStorageCapacity class from the Cuemon namespace
- REMOVED ByteUnit class from the Cuemon namespace
- REMOVED DecimalPrefix class from the Cuemon namespace
- REMOVED IPrefixMultiple interface from the Cuemon namespace
- REMOVED IUnit interface from the Cuemon namespace
- REMOVED MultipleTable class from the Cuemon namespace
- REMOVED NamingStyle enum from the Cuemon namespace
- REMOVED PrefixMultiple class from the Cuemon namespace
- REMOVED PrefixUnit class from the Cuemon namespace
- REMOVED StorageCapacity class from the Cuemon namespace
- REMOVED StorageCapacityOptions class from the Cuemon namespace
- REMOVED UnitFormatOptions class from the Cuemon namespace
- REMOVED UnitPrefix enum from the Cuemon namespace
- REMOVED UnitPrefixFormatter class from the Cuemon namespace
- REMOVED ZeroPrefix class from the Cuemon namespace
- REMOVED DataPairCollection class from the Cuemon.Collections namespace
- REMOVED DataPairDictionary class from the Cuemon.Collections namespace
- REMOVED Initializer class from the Cuemon namespace
- REMOVED InitializerBuilder class from the Cuemon namespace
- REMOVED Mapping class from the Cuemon namespace
- REMOVED IndexMapping class from the Cuemon namespace
- REMOVED HorizontalDirection enum from the Cuemon namespace
- REMOVED VerticalDirection enum from the Cuemon namespace (moved to the Cuemon.Extensions namespace in the Cuemon.Extensions.Core assembly)
- REMOVED IWrapper interface from the Cuemon namespace (moved to the Cuemon.Extensions namespace in the Cuemon.Extensions.Core assembly)
- REMOVED Wrapper class from the Cuemon namespace (moved to the Cuemon.Extensions namespace in the Cuemon.Extensions.Core assembly)
- REMOVED HierarchyDecoratorExtensions class from the Cuemon namespace (moved to the Cuemon.Extensions.Runtime namespace in the Cuemon.Extensions.Core assembly)
- REMOVED Hierarchy class from the Cuemon namespace (moved to the Cuemon.Extensions.Runtime namespace in the Cuemon.Extensions.Core assembly)
- REMOVED IHierarchy interface from the Cuemon namespace (moved to the Cuemon.Extensions.Runtime namespace in the Cuemon.Extensions.Core assembly)
- REMOVED ObjectHierarchyOptions class from the Cuemon.Reflection namespace (moved to the Cuemon.Extensions.Runtime namespace in the Cuemon.Extensions.Core assembly and renamed to HierarchyOptions)
- REMOVED HierarchySerializer class from the Cuemon.Runtime.Serialization namespace (moved to the Cuemon.Extensions.Runtime.Serialization namespace in the Cuemon.Extensions.Core assembly)
 
# New Features
- ADDED Failure record in the Cuemon.Diagnostics namespace that represents a failure model with detailed information about an exception
 
# Improvements
- EXTENDED Condition class in the Cuemon namespace with an additional method: HasDifference
- EXTENDED Validator class in the Cuemon namespace with five new methods: ThrowIfContainsReservedKeyword, ThrowIfNotDifferent, ThrowIfDifferent, ThrowIfContainsAny and ThrowIfNotContainsAny
- CHANGED Validator class in the Cuemon namespace to comply with RSPEC-3343
- EXTENDED Decorator class in the Cuemon namespace with an additional method: RawEnclose
 
Version 8.3.2
Availability: .NET 8, .NET 6 and .NET Standard 2.0
 
# ALM
- REMOVED Support for TFM .NET 7 (STS)
 
Version 8.3.0
Availability: .NET 8, .NET 7, .NET 6 and .NET Standard 2.0
 
# ALM
- CHANGED DefaultYamlConverter class in the Cuemon.Runtime.Serialization.Converters to include the ObsoleteAttribute with this message: All YAML marshalling has been moved to its own assembly; Cuemon.Extensions.YamlDotNet. This member will be removed with next major version
- CHANGED YamlSerializer class in the Cuemon.Runtime.Serialization to include the ObsoleteAttribute with this message: All YAML marshalling has been moved to its own assembly; Cuemon.Extensions.YamlDotNet. This member will be removed with next major version
- CHANGED YamlSerializerOptions class in the Cuemon.Runtime.Serialization to include the ObsoleteAttribute with this message: All YAML marshalling has been moved to its own assembly; Cuemon.Extensions.YamlDotNet. This member will be removed with next major version
- CHANGED YamlTextReader class in the Cuemon.Runtime.Serialization to include the ObsoleteAttribute with this message: All YAML marshalling has been moved to its own assembly; Cuemon.Extensions.YamlDotNet. This member will be removed with next major version
- CHANGED YamlTextWriter class in the Cuemon.Runtime.Serialization to include the ObsoleteAttribute with this message: All YAML marshalling has been moved to its own assembly; Cuemon.Extensions.YamlDotNet. This member will be removed with next major version
- CHANGED YamlTokenType enum in the Cuemon.Runtime.Serialization to include the ObsoleteAttribute with this message: All YAML marshalling has been moved to its own assembly; Cuemon.Extensions.YamlDotNet. This member will be removed with next major version
- CHANGED ExceptionDescriptorConverter class in the Cuemon.Text.Yaml.Converters to include the ObsoleteAttribute with this message: All YAML marshalling has been moved to its own assembly; Cuemon.Extensions.YamlDotNet. This member will be removed with next major version
- CHANGED YamlConverter class in the Cuemon.Text.Yaml.Converters to include the ObsoleteAttribute with this message: All YAML marshalling has been moved to its own assembly; Cuemon.Extensions.YamlDotNet. This member will be removed with next major version
- CHANGED YamlFormatter class in the Cuemon.Text.Yaml.Formatters to include the ObsoleteAttribute with this message: All YAML marshalling has been moved to its own assembly; Cuemon.Extensions.YamlDotNet. This member will be removed with next major version
- CHANGED YamlFormatterOptions class in the Cuemon.Text.Yaml.Formatters to include the ObsoleteAttribute with this message: All YAML marshalling has been moved to its own assembly; Cuemon.Extensions.YamlDotNet. This member will be removed with next major version
- CHANGED YamlConverterFactory class in the Cuemon.Text.Yaml to include the ObsoleteAttribute with this message: All YAML marshalling has been moved to its own assembly; Cuemon.Extensions.YamlDotNet. This member will be removed with next major version
- CHANGED YamlNamingPolicy class in the Cuemon.Text.Yaml to include the ObsoleteAttribute with this message: All YAML marshalling has been moved to its own assembly; Cuemon.Extensions.YamlDotNet. This member will be removed with next major version
 
# Bug Fixes
- FIXED Alphanumeric class in the Cuemon namespace so that the WhiteSpace constant field does not include the U+180E (Mongolian vowel separator) since it is no longer considered a white space as per Unicode 6.3.0
- FIXED ExceptionConverter class in the Cuemon.Text.Yaml.Converters namespace to use Environment.NewLine instead of Alphanumeric.NewLine (vital for non-Windows operating systems)
 
Version 8.2.0
Availability: .NET 8, .NET 7, .NET 6 and .NET Standard 2.0
 
# ALM
- CHANGED Dependencies to latest and greatest with respect to TFMs
 
# Bug Fixes
- FIXED Validator class in the Cuemon namespace to have one less redundant ThrowIfNullOrWhitespace method while simplifying the remainder
- FIXED ParserFactory class in the Cuemon.Text namespace so that FromUri method now validates both Absolute and Relative URI correct (prior to this fix, only Absolute was validated correctly)
 
# Improvements
- CHANGED Validator class in the Cuemon namespace to throw an ArgumentOutOfRangeException when ThrowIfUri is called with uriKind set to an indeterminate value of UriKind.RelativeOrAbsolute
 
Version: 8.1.0
Availability: .NET 8, .NET 7, .NET 6 and .NET Standard 2.0
 
# ALM
- CHANGED Dependencies to latest and greatest with respect to TFMs
 
# New Features
- ADDED IContentNegotiation interface in the Cuemon.Net.Http namespace that defines a way to support content negotiation for HTTP enabled applications
 
# Improvements
- CHANGED Validator class in the Cuemon namespace to ease on constraint from IValidatableParameterObject --> IParameterObject on ThrowIfInvalidConfigurator and ThrowIfInvalidOptions; functionality remains the same but opens up for more flexibility
- CHANGED YamlSerializer class in the Cuemon.Runtime.Serialization namespace so it is consistent with other serializers/formatters in the Cuemon family
- CHANGED YamlFormatter class in the Cuemon.Text.Yaml.Formatters so that it inherits from StreamFormatter{T} as the remainder of the formatters in the Cuemon family
- CHANGED YamlFormatterOptions class in the Cuemon.Text.Yaml.Formatters so that it shares common denominators with the remainder of the formatter options in the Cuemon family
- EXTENDED StreamFormatter{T} class in the Cuemon.Runtime.Serialization.Formatters namespace to include an additional eight overloaded static members for SerializeObject and DeserializeObject (support for TOptions)
- CHANGED Configurable{T} class in the Cuemon.Configuration namespace to have the constructor validated by Validator.ThrowIfInvalidOptions hereby reducing the risk of misconfigured Options
- MOVED ConditionalValue class from the Cuemon.Threading namespace to the Cuemon namespace
- MOVED SuccessfulValue class from the Cuemon.Threading namespace to the Cuemon namespace
- MOVED UnsuccessfulValue class from the Cuemon.Threading namespace to the Cuemon namespace
- CHANGED ConditionalValue class in the Cuemon namespace to include a Failure property that is of type Exception
- EXTENDED AsyncOptions class in the Cuemon.Threading namespace to include a function delegate property, CancellationTokenProvider, that takes precedence when set, meaning that the getter of existing CancellationToken property will invoke said mentioned function delegate (edge case usage)
 
# Bug Fixes
- FIXED YamlTextWriter class in the Cuemon.Runtime.Serialization namespace to be slightly more compliant with the YAML standard (next major version will opt-in for a 3rd party library that adhere to the standard in both terms of serializing and deserializing)
 
Version: 8.0.1
Availability: .NET 8, .NET 7, .NET 6 and .NET Standard 2.0
 
# ALM
- CHANGED Dependencies to latest and greatest with respect to TFMs
 
Version: 8.0.0
Availability: .NET 8, .NET 7, .NET 6 and .NET Standard 2.0
 
# ALM
- ADDED TFM for net8.0
- CHANGED Dependencies to latest and greatest with respect to TFMs
 
# Breaking Changes
- REMOVED SerializableAttribute and ISerializable implementations due to Microsoft decision on deprecating most of the legacy serialization infrastructure https://github.com/dotnet/docs/issues/34893
- REMOVED HasParameters property from MemberReflection class in the Cuemon.Reflection namespace
- CHANGED IsProperty property visibility from public to private in the MemberReflection class in the Cuemon.Reflection namespace
- CHANGED FormattingOptions class in the Cuemon namespace to not have generic parameter T (of IFormatProvider) and implement IValidatableParameterObject
- RENAMED ThrowIfObjectInDistress method on the Validator class in the Cuemon namespace to ThrowIfInvalidState
- RENAMED ICorrelation interface in the Cuemon.Messaging namespace to ICorrelationToken
- RENAMED IRequest interface in the Cuemon.Messaging namespace to IRequestToken
- REMOVED DynamicCorrelation class from the Cuemon.Messaging namespace
- REMOVED DynamicRequest class from the Cuemon.Messaging namespace
 
# Bug Fixes
- FIXED World class in the Cuemon.Globalization namespace so that it no longer throws an ArgumentException when adding a duplicate culture (on Linux)
- FIXED YamlTextWriter class in the Cuemon.Runtime.Serialization namespace so that it skip serializing the object when WriteObject is called with a null value
 
# Improvements
- EXTENDED MemberReflection class in the Cuemon.Reflection namespace with an additional new static member: CreateFlags
- CHANGED Validator class in the Cuemon namespace was modernized and greatly improved for both consistency and changes introduced by Microsoft for both C# 10 and recent .NET versions
- ADDED Static method EncloseToExpose together with a new property, ArgumentName, to the Decorator class in the Cuemon namespace that can be used to re-use non-common extension methods from native extension methods without double-validating arguments
- ADDED An overload of CheckParameter to the Validator class in the Cuemon namespace that satisfies validating when doing constructor nesting
- CHANGED DelimitedStringOptions class in the Cuemon namespace inherits from FormattingOptions
- CHANGED ObjectFormattingOptions class in the Cuemon namespace inherits from FormattingOptions
- CHANGED ObjectPortrayalOptions class in the Cuemon namespace inherits from FormattingOptions
- CHANGED ActivatorOptions class in the Cuemon.Reflection namespace inherits from FormattingOptions
- CHANGED TypeNameOptions class in the Cuemon.Reflection namespace inherits from FormattingOptions
- CHANGED StorageCapacityOptions class in the Cuemon namespace inherits from FormattingOptions
- CHANGED UnitFormatOptions class in the Cuemon namespace inherits from FormattingOptions
- EXTENDED Validator class in the Cuemon namespace to have new static methods: ThrowIfDisposed
 
# New Features
- ADDED MethodSignature class in the Cuemon.Reflection namespace to represent a lightweight signature of a method when serializing and deserializing
- ADDED TransientFaultEvidence class in the Cuemon.Resilience namespace that provides evidence about a faulted TransientOperation
- ADDED TransientFaultException class in the Cuemon.Resilience namespace that represents the exception that is thrown when a transient fault handling was unsuccessful
- ADDED Formatter class in the Cuemon.Runtime.Serialization.Formatters namespace that complements serialization and deserialization of an object
- ADDED MemberArgument class in the Cuemon.Reflection namespace to represent an argument given to a member in the context of reflection
- ADDED MemberParser class in the Cuemon.Reflection namespace to provide a generic way to rehydrate serialized objects
- ADDED MemberArgumentDecoratorExtensions class in the Cuemon.Reflection namespace that provides (hidden) extensions to the MemberArgument class
- ADDED CorrelationToken class in the Cuemon.Messaging namespace that represents a default implementation of the ICorrelationToken interface
- ADDED RequestToken class in the Cuemon.Messaging namespace that represents a default implementation of the IRequestToken interface
 
# Quality Analysis Actions
- CHANGED HierarchySerializer class in the Cuemon.Runtime.Serialization namespace to be compliant with https://learn.microsoft.com/en-us/dotnet/fundamentals/code-analysis/quality-rules/ca1822