armat.utils
1.0.1
dotnet add package armat.utils --version 1.0.1
NuGet\Install-Package armat.utils -Version 1.0.1
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="armat.utils" Version="1.0.1" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add armat.utils --version 1.0.1
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
#r "nuget: armat.utils, 1.0.1"
#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 armat.utils as a Cake Addin #addin nuget:?package=armat.utils&version=1.0.1 // Install armat.utils as a Cake Tool #tool nuget:?package=armat.utils&version=1.0.1
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
Armat Utilities
The document describes Armat.Utils
.Net library usage. It represents a set of reusable utilities for .Net applications. It contains of the following classes:
- Counters
Armat.Utils.Counter
class is a thread-safe counter. It also fires pre and post modification events when the counter value is changed.Armat.Utils.LockCounter
class is a thread-safe reentrant lock. It could be used to block certain operations while the program is running a job. It also fires events when the counter is locked or unlocked.Armat.Utils.ControlledActionInvoker
is derived from aLockCounter
and allows blocking method invocations while the counter is locked. If configured accordingly, method invocation triggers upon unlocking the counter.
- Collections
Armat.Collections.ConcurrentList
is an implementation of list with thread safety in mind.Armat.Collections.IndigentList
is an implementation of list which mostly contains less then 2 elements. It avoids allocation of arrays wherever possible.Armat.Collections.ListDictionary
is an ordered dictionary implementing both -IDictionary
andIList
interfaces.Armat.Collections.SegmentedStringDictionary
is an implementation of a dictionary with multiple segments of keys. InterfaceISegmentedStringDictionary
defines the interface to access dictionary elements by segment keys.Armat.Collections.IndexedList
represents a list of elements which can be indexed by any field(s). It could be used as in-memory table of rows indexed by different columns. There are several indexing methods like hash-tables or binary trees.
- Serialization
Armat.Serialization.IPackable
declares interfaces for packing and unpacking data types that require custom serialization code.Armat.Serialization.ITypeLocator
declares interface for locating a data type based on it's assembly name and the type name to be used for deserialization.Armat.Serialization.JsonSerializer
helper class for easy serialization of objects into and from Json format.Armat.Serialization.XmlSerializer
helper class for easy serialization of objects into and from Xml format.
- Extensions
- Extension of
Byte[]
to compare, copy and perform bitwise operations on byte arrays. SeeArmat.Utils.Extensions.ByteArray
class for details. - Extensions of
IDictionary<Key,Value>
,IReadOnlyDictionary<Key,Value>
,IReadOnlyCollection<T>
andIEnumerable<T>
to compare contents of collections. SeeArmat.Utils.Extensions.ContentComparer
class for details. - Extensions of
Exception
andAggregateException
classes to retrieve inner exception(s) of a given type. SeeArmat.Utils.Extensions.ExceptionHelpers
class for details. - Extension of
ReaderWriterLockSlim
to create a disposable ReadLocker, UpgradableReadLocker or WriteLocker objects - to acquire a lock in a given scope.
- Extension of
More utilities will come later...
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net6.0 is compatible. 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 was computed. 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. |
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
-
net6.0
- No dependencies.
NuGet packages (1)
Showing the top 1 NuGet packages that depend on armat.utils:
Package | Downloads |
---|---|
armat.threading
C# class library for developing multithreaded applications. It can be used as an alternative to .Net System.Threading.Tasks library to support multiple schedulers within a context of a single application. |
GitHub repositories
This package is not used by any popular GitHub repositories.