Cuemon.Core 5.0.2018.310

The Cuemon.Core assembly is the patriarch of the Cuemon .NET Standard family and provides fundamental-, utility- and base-classes that define commonly-used value and reference data types, events and event handlers, interfaces, attribute, and feature rich delegates to greatly support functional programming.

Install-Package Cuemon.Core -Version 5.0.2018.310
dotnet add package Cuemon.Core --version 5.0.2018.310
paket add Cuemon.Core --version 5.0.2018.310
The NuGet Team does not provide support for this client. Please contact its maintainers for support.

Release Notes

5.0.2018.310
* REMOVED - ExecuteMethodAsync, BeginExecuteMethod and EndExecuteMethod on the ActionFactory class in the Cuemon namespace as .NET Core does not support BeginInvoke and EndInvoke (so much for same API)
* REMOVED - ExecuteMethodAsync, BeginExecuteMethod and EndExecuteMethod on the FuncFactory class in the Cuemon namespace as .NET Core does not support BeginInvoke and EndInvoke (so much for same API)

5.0.2018.256
* ADDED - New extensions for ICollection{T}: AddRange
* ADDED - New extensions for IList{T}: Remove

5.0.2018.253
* ADDED - EncodingConverter class in the Cuemon.Text namespace that is designed to make Encoding conversions easier to work with
* ADDED - New extensions for Encoding: ToEncodedString
* ADDED - FallbackEncodingOptions class in the Cuemon.Text namespace that specifies options that is related to Encoding operations

5.0.2018.251
* FIXED - The extension method for IEnumerable{T}: Shuffle{T} was fixed so it no longer skips one item

5.0.2018.250
* PRELUDE - This is a major release with breaking changes through out the assembly family
* CHANGED - Refactored and moved ExceptionDescriptor class from Cuemon namespace to Cuemon.Diagnostics
* CHANGED - Refactored and moved ExceptionDescriptorAttribute class from Cuemon namespace to Cuemon.Diagnostics
* ADDED - IMessageLocalizer interface in the Cuemon.Globalization namespace that provides a generic way to support localized messages on attribute decorated methods
* ADDED - Support for localization of fault messages on ExceptionDescriptorAttribute class
* ADDED - ExceptionDescriptorOptions class in the Cuemon.Diagnostics namespace that specifies options that is related to ExceptionDescriptor
* CHANGED - Wrapper class in the Cuemon namespace received a simplified constructor
* ADDED - New extensions for {T}: UseWrapper (Wrap and extend an existing object of {T} with additional data)
* ADDED - Two new validation methods on Validator class in the Cuemon namespace; ThrowIfDistinctDifference and ThrowIfNotDistinctDifference
* CHANGED - ContainsInterface on the TypeUtility class in the Cuemon namespace to include self (should self be an interface)
* ADDED - IConfigurable interface in the Cuemon.Configuration namespace that provides a generic way to support the options pattern on a class level
* ADDED - Configurable abstract class in the Cuemon.Configuration namespace that provides a generic base class to support the options pattern on a class level
* FIXED - TryParse on EncodingUtility class in the Cuemon.Text namespace no longer throws exception when byte array is less than fourn in length
* ADDED - ICorrelation interface in the Cuemon.Messaging namespace that provides a Correlation ID (also known as a Request ID) that is a unique identifier which is attached to requests and messages that allow reference to a particular transaction or event chain
* ADDED - DynamicCorrelation class in the Cuemon.Messaging namespace that provides a factory based way to create and wrap an ICorrelation implementation
* ADDED - ChecksumResult class in the Cuemon.Integrity namespace that represents the result of a computed checksum operation
* CHANGED - TimeMeasureOptions class in the Cuemon.Diagnostics namespace is no longer sealed

4.3.2018.2200
* ADDED - AsyncOptions class in the Cuemon.Threading namespace that specifies options that is related to asynchronous operations

4.3.2018.2070
* CHANGED - Assembly version 4.2.2017.0 --> 4.3.2018.205
* CHANGED - Renamed Remove --> RemoveAll on the StringUtility and StringUtilityExtensions class in the Cuemon namespace (breaking)
* ADDED - New extensions for Task: ContinueWithCapturedContext, ContinueWithSuppressedContext
* ADDED - New extensions for Task{TResult}: ContinueWithCapturedContext, ContinueWithSuppressedContext
* CHANGED - HashUtility and HashUtilityExtensions class in the Cuemon.Security.Cryptography namespace was refactored to support the options pattern
* CHANGED - HmacUtility and HmacUtilityExtensions class in the Cuemon.Security.Cryptography namespace was refactored to support the options pattern
* ADDED - HashOptions class in the Cuemon.Security.Cryptography namespace that specifies options that is related to HashAlgorithm operations
* ADDED - KeyedHashOptions class in the Cuemon.Security.Cryptography namespace that specifies options that is related to KeyedHashAlgorithm operations
* ADDED - StreamHashOptions class in the Cuemon.Security.Cryptography namespace that specifies options that is related to HashAlgorithm operations
* ADDED - StreamKeyedHashOptions class in the Cuemon.Security.Cryptography namespace that specifies options that is related to KeyedHashAlgorithm operations
* ADDED - StringHashOptions class in the Cuemon.Security.Cryptography namespace that specifies options that is related to HashAlgorithm operations
* ADDED - StringKeyedHashOptions class in the Cuemon.Security.Cryptography namespace that specifies options that is related to KeyedHashAlgorithm operations

4.2.2018.840
* PRELUDE - Microsoft has now proven that .NET Standard is the way to go why per assembly download is re-introduced again

4.2.2017.2270
* CHANGED - Renamed FromChars --> ToEnumerable on the StringConverter class in the Cuemon namespace
* ADDED - StringConverter class in the Cuemon namespace received one new method; FromChars
* ADDED - New extensions for IEnumerable{Char}: FromChars
* ADDED - StringUtility class in the Cuemon namespace received three new methods; two overloaded HasConsecutiveCharacters and one ParseDistinctDifference

4.2.2017.2250
* ADDED - New extensions for IDictionary{TKey,TValue}: TryGetValue, GetValueOrDefault
* ADDED - ConditionalCollection{T} class in the Cuemon.Collections.Generic namespace that provides an abstract base class for a generic, conditional collection
* ADDED - Initializer class in the Cuemon namespace that provides a generic way to wrap and initialize a class for countless scenarios
* ADDED - InitializerBuilder{T} class in the Cuemon namespace that supports the Initializer class for building custom initializers

4.2.2017.900
* FIXED - All async/await methods now uses ConfigureAwait(false)
* ADDED - ActionFactory class in the Cuemon namespace received a Task based method; ExecuteMethodAsync (TAP)
* ADDED - FuncFactory class in the Cuemon namespace received a Task{TResult} based method; ExecuteMethodAsync (TAP)
* ADDED - TaskActionFactory class in the Cuemon namespace that provides access to factory methods for creating instances that encapsulate a Task based function delegate with a variable amount of generic arguments (TAP)
* ADDED - TaskFuncFactory class in the Cuemon namespace that provides access to factory methods for creating instances that encapsulate a Task{TResult} based function delegate with a variable amount of generic arguments (TAP)
* ADDED - TransientOperation class in the Cuemon namespace received several Task based overloaded methods; WithFuncAsync and WithActionAsync (TAP)
* FIXED - TransientOperationOptions class in the Cuemon namespace now have a default value of 5 minutes on the MaximumAllowedLatency property
* ADDED - ExceptionDescriptorAttribute class in the Cuemon namespace that provides information about an Exception, in a developer friendly way, optimized for open- and otherwise public application programming interfaces (API)
* ADDED - ExceptionDescriptor class in the Cuemon namespace received two new overloaded methods; PostInitializeWith
* CHANGED - MethodDescriptor class in the Cuemon.Reflection namespace was refactored to use property Caller:Type instead of property ClassName:string, which in return should add higher flexibility
* ADDED - MethodWrappedException class in the Cuemon namespace that wraps an exception that was refined with meta information from the ExceptionUtility class
* ADDED - ExceptionUtility class in the Cuemon namespace received a new method; Unwrap
* CHANGED - ExceptionUtility class in the Cuemon namespace received refactoring of Refine methods; instead of returning a generic {T of Exception}, they now return a MethodWrappedException
* FIXED - Renamed extensions for Exception: RefineException --> Refine
* ADDED - New extensions for MethodWrappedException: Unwrap
* FIXED - StringConverter class in the Cuemon namespace now writes punctuations delimiters again on the FromType method
* ADDED - Validator class in the Cuemon namespace received four new overloaded methods; ThrowIfUri, ThrowIfNotUri, ThrowIfContainsType and ThrowIfNotContainsType
* ADDED - TimeMeasure class in the Cuemon.Diagnostics namespace received several Task based overloaded methods; WithActionAsync and WithFuncAsync (TAP)
* ADDED - TesterDoer class in the Cuemon namespace that provides a set of methods that can assist with the tester-doer pattern

4.1.2017.500
* CHANGED - DataPair class in the Cuemon namespace can now be inherited from
* CHANGED - FromPascalCasing method on the StringConverter class in the Cuemon namespace to be more flexible on conversion

4.1.2017.400
* ADDED - DayPart class in the Cuemon namespace that represents a part of a day.
* ADDED - DayParts class in the Cuemon namespace that provides a roughly way to determine if a given part of a day is either; Night, Morning, Forenoon, Afternoon og Evening
* FIXED - World class in the Cuemon.Globalization namespace now tries to load cultures by reflection; if unsuccessful, it reverts to an embedded resource where CultureNotFoundException are swallowed
* ADDED - New extensions for DateTime: IsWithinRange, IsTimeOfDayNight, IsTimeOfDayMorning, IsTimeOfDayForenoon, IsTimeOfDayAfternoon, IsTimeOfDayEvening
* ADDED - New extensions for String: SubstringBefore

4.1.2017.350
* ADDED - New extensions for Int16: Min, Max
* ADDED - New extensions for Int32: Min, Max
* ADDED - New extensions for Int64: Min, Max
* ADDED - New extensions for RegionInfo: GetCultures
* ADDED - CasingMethod enum in the Cuemon namespace that specifies ways that a string must be converted in terms of casing
* CHANGED - Renamed FromConvertible --> FromConvertibles on the ByteConverter class in the Cuemon namespace
* ADDED - World class in the Cuemon.Globalization namespace that is designed to make System.Globalization related operations easier to work with

4.1.2017.280
* FIXED - EncodingOptions class in the Cuemon.Text namespace now uses the static default values
* FIXED - The extension method for String: ToByteArray was re-implemented using the old way of method overloading due to conflict with the generic variant of this method

4.1.2017.200
* CHANGED - Assembly version 4.0.2016.0 --> 4.1.2017.0
* CHANGED - All extension methods, that uses the options pattern, now has an optional setup delegate
* ADDED - Validator class in the Cuemon namespace received several new overloaded methods; ThrowIfEmpty, ThrowIfWhiteSpace, ThrowIfNullOrEmpty, ThrowIfNullOrWhitespace
* ADDED - Condition class in the Cuemon namespace received a new method; IsWhiteSpace

4.1.2016.3580
* ADDED - LatencyException class in the Cuemon namespace that provides the exception that is thrown when a latency related operation was taking to long to complete
* CHANGED - Parse and Flatten methods on the static ExceptionUtility class in the Cuemon namespace was tweaked to be more versatile
* CHANGED - ByteConverter class in the Cuemon namespace was simplified internally
* CHANGED - CharConverter class in the Cuemon namespace was simplified internally and tweaked with a try to detect encoding on relevant methods
* CHANGED - StringConverter class in the Cuemon namespace was simplified internally and tweaked with a try to detect encoding on relevant methods
* CHANGED - Renamed extensions for Stream: ToString --> ToEncodedString
* CHANGED - Renamed extensions for Exception: ToString --> ToEncodedString
* CHANGED - Renamed extensions for Byte[]: ToString --> ToEncodedString
* ADDED - TransientFaultEvidence class in the Cuemon namespace that provides evidence about a faulted TransientOperation
* CHANGED - TransientFaultException class in the Cuemon namespace was changed to include TransientFaultEvidence
* CHANGED - TransientOperation class in the Cuemon namespace was extended to support a FaultCallback delegate, calculate latency and include TransientFaultEvidence
* CHANGED - TransientOperationOptions class in the Cuemon namespace was extended to support MaximumAllowedLatency
* CHANGED - TimeMeasure class in the Cuemon.Diagnostics namespace was changed in terms of TimeMeasureCompletedCallback delegate being renamed to CompletedCallback

4.1.2016.3500
* ADDED - ExceptionDescriptor class in the Cuemon namespace that provides information about an Exception, in a developer friendly way, optimized for open- and otherwise public application programming interfaces (API)
* ADDED - ObjectHierarchyOptions class in the Cuemon.Reflection namespace that specifies options that is related to ReflectionUtility.GetObjectHierarchy operations
* REMOVED - Callback suffix from various delegates throughout the assembly package
* ADDED - New extensions for TOptions: ConfigureOptions
* ADDED - New extensions for IHierarchy<DataPair>: UseTimeSpanFormatter, UseUriFormatter, UseDateTimeFormatter, UseConvertibleFormatter, UseGuidFormatter, UseStringFormatter, UseDecimalFormatter, UseCollection, UseDictionary
* REMOVED - Redundant extension methods that collisioned with the .NET Standard Library
* CHANGED - Hierarchy{T} class in the Cuemon namespace was made more simple and flexible
* ADDED - New extensions for IHierarchy{T}: FindFirstInstance, FindSingleInstance, FindInstance, FindFirst, FindSingle, Find, Replace, ReplaceAll
* CHANGED - IHierarchy{T} interface in the Cuemon namespace received two new members; Replace and GetPath
* CHANGED - DataPair class in the Cuemon namespace was made more simple and flexible
* ADDED - TimeRange class in the Cuemon namespace that represents a period of time between two DateTime values
* CHANGED - IsComplex method on the TypeUtility class in the Cuemon namespace to be more precise
* ADDED - New extensions for IDictionary{TKey,TValue}: AddIfNotContainsKey, AddOrUpdate
* ADDED - New extensions for DateTime: ToString
* REMOVED - Uri support from the ObjectConverter.FromString method in the Cuemon namespace

4.0.2016.3270
* PRELUDE - Because of the many paths given by Microsoft in the road of .NET Core, this is a major and breaking release where all assemblies have been refactored and put together again in a nifty package. So, just like Cuemon .NET Framework, this is the Core version. No more single assemblies for download. It seemed smart, but reality has proven otherwise. So all single assemblies has been deemed deprecated.
* REMOVED - Act delegates in the Cuemon namespace (leftover from Cuemon .NET Framework merge); all lamda expressions has been replaced with Action delegates
* REMOVED - Doer delegates in the Cuemon namespace (leftover from Cuemon .NET Framework merge); all lamda expressions has been replaced with Func delegates
* CHANGED - ActFactory class in the Cuemon namespace was renamed to ActionFactory
* CHANGED - DoerFactory class in the Cuemon namespace was renamed to FuncFactory
* CHANGED - TesterDoer delegates in the Cuemon namespace was renamed to TesterFunc delegates
* CHANGED - TesterDoerFactory class in the Cuemon namespace was renamed to TesterFuncFactory
* CHANGED - TesterDoerUtility class in the Cuemon namespace was renamed to TesterFuncUtility
* CHANGED - MethodSignature class in the Cuemon.Reflection namespace was renamed to MethodDescriptor
* CHANGED - TransientFaultUtility class in the Cuemon namespace was renamed to TransientOperation and refactored to support the options pattern
* ADDED - TransientOperationOptions class in the Cuemon namespace that specifies options that is related to TransientOperation handling
* ADDED - Profiler class in the Cuemon.Diagnostics namespace that represents a base class for profiler related operations
* ADDED - ProfilerOptions class in the Cuemon.Diagnostics namespace that specifies options that is related to Profiler operations
* ADDED - TimeMeasureOptions class in the Cuemon.Diagnostics namespace that specifies options that is related to TimeMeasureProfiler operations
* ADDED - TimeMeasureProfiler class in the Cuemon.Diagnostics namespace that represents a profiler that is optimized for time measuring operations
* ADDED - TimeMeasureProfiler<TResult> class in the Cuemon.Diagnostics namespace that represents a profiler that is optimized for time measuring operations that provides a return value
* ADDED - Tweaker class in the Cuemon namespace that provides a way to change any instance of the same generic type
* ADDED - EncodingOptions class in the Cuemon.Text namespace that specifies options that is related to Encoding operations
* ADDED - One new method, IsAnonymousMethod, was added to the TypeUtility class in the Cuemon namepspace
* ADDED - Two new method, SafeInvokeDisposable (overloaded) and ConfigureAction, was added to the DelegateUtility class in the Cuemon namepspace
* ADDED - New extensions for DateTime: ToUtcKind, ToLocalKind, ToDefaultKind
* ADDED - New extensions for T: Adjust
* ADDED - New extensions for TimeSpan: GetTotalNanoseconds, GetNanoseconds, GetTotalMicroseconds, GetMicroseconds

4.0.2016.1880
* ADDED - Two new methods, ToProtocolRelativeUri, was added to the StringConverter class in the Cuemon namepspace
* ADDED - UriConverter static class in the Cuemon namepspace that is designed to make Uri related conversions easier to work with
* ADDED - Two new methods, IsProtocolRelativeUri, was added to the UriUtility class in the Cuemon namepspace
* FIXED - The default function delegate for ByteConverter.TryFromBase64String and StringUtility.IsBase64 now evaluates a Base64 string correctly

4.0.2016.1380-rc2
* ADDED - Support for .NET Platform Standard 1.4 (netstandard1.4)
* CHANGED - Removed support for .NET Platform Standard 5.4 (dotnet5.4)

4.0.2016.1360-beta
* CHANGED - The StringConverter.FromException(Exception, ..) method in the Cuemon namespace now flatten and includes all inner exceptions
* FIXED - The ByteConverter.TryFromBase64String(string, ..) method in the Cuemon namespace now evaluates false if the predicate evaluates false
* FIXED - The TransientFaultUtility class in the Cuemon namespace does not include a dublet of the last exception thrown

Version History

Version Downloads Last updated
5.0.2018.310 55 11/6/2018
5.0.2018.256 106 10/29/2018
5.0.2018.253 138 9/18/2018
5.0.2018.251 173 9/10/2018
5.0.2018.250 57 9/9/2018
4.3.2018.2200 98 8/8/2018
4.3.2018.2070 82 7/27/2018
4.2.2018.840 214 2/9/2018