Universal.Common 8.2.5

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

// Install Universal.Common as a Cake Tool
#tool nuget:?package=Universal.Common&version=8.2.5                

Universal.Common

Support utilities and extensions meant to extend the default functionality from the base class library.

Quickstart

BitSequence

Utility for as-is bit manipulations.

BitSequence bs1 = new BitSequence("10001010"); // Binary representation in string.
BitSequence bs2 = new BitSequence(new bool[] { true, false, true }); // As booleans.
BitSequence bs3 = bs1 & "11110000"; // Bitwise and, implicit conversion from binary representation string.

BitStream

Utility to perform bit-level operations on System.IO.Stream.

using (BitStream bitStream = new BitStream(stream)) 
{
    uint value = bitStream.ReadUInt32(4); // Reads 4 bits from the stream and interprets it as an unsigned integer, padding if necessary.
}

MediaType

Represents MIME types and provides functionality for working with media types in various contexts.

Constructor
MediaType mediaType = new MediaType("application/json");
MediaType Detection

The MediaType class provides several static methods to create MediaType instances from different sources:

  1. FromExtension
MediaType mediaType = MediaType.FromExtension(".json");
// Returns a MediaType instance for "application/json"

Creates a MediaType instance based on a file extension (with or without the leading dot).

  1. FromByteArray
byte[] fileBytes = File.ReadAllBytes("sample.png");
MediaType mediaType = MediaType.FromByteArray(fileBytes);
// Returns a MediaType instance for "image/png"

Detects the media type based on the file signature in the byte array.

  1. FromStream
using (FileStream stream = File.OpenRead("sample.jpg"))
{
    MediaType mediaType = MediaType.FromStream(stream);
    // Returns a MediaType instance for "image/jpeg"
}

Detects the media type based on the file signature read from the stream.

These methods allow for flexible media type detection from various sources, making it easier to work with files and data streams in different formats.

UriBuilder

Derived from System.UriBuilder, this class provides a fluent API to configure segments and queries.

UriBuilder uriBuilder = new UriBuilder("http://www.myhost.com");
uriBuilder
    .AddSegments("api", "Product", 1)
    .AddQuery("key", "value");
// "https://www.myhost.com/api/Product/1?key=value"

ZigZag

Static class that encodes arrays to matrices and vice-versa.

int[,] matrix = new int[,] { { 0, 1 }, { 2, 3 } };
int[] array = ZigZag.ToArray(matrix); // [0, 1, 2, 3]
Product Compatible and additional computed target framework versions.
.NET net5.0 was computed.  net5.0-windows was computed.  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. 
.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 is compatible. 
.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.
  • .NETStandard 2.1

    • No dependencies.
  • net6.0

    • No dependencies.

NuGet packages (33)

Showing the top 5 NuGet packages that depend on Universal.Common:

Package Downloads
Universal.Common.Reflection

Class library for performing advanced operations with types, dynamic objects, expressions, and reflection.

Universal.Common.Net.Http

Class library to build clients and work with HTTP web services.

Universal.Common.Serialization

Class library with base objects that provide serializable to and from XML and JSON strings and binary serialization using the native binary formatter.

Universal.Android

Class library for accelerating Xamarin.Android development. Note: If you encounter layout inflation exceptions (could be masked as NotFoundException, or some issue with text_color_secondary.xml etc), make sure you define colorControlNormal and use a style with that attribute defined.

Universal.Common.Mathematics

Class library implementing advanced mathematical algorithms, transforms, and time series manipulations. Implementations favour simplicity and correctness.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated
8.2.5 168 10/17/2024
8.2.4.1 403 7/15/2024
8.2.4 11,707 9/25/2023
8.2.3 467 6/8/2023
8.2.2 2,528 11/23/2022
8.2.1 380 11/22/2022
8.2.0 9,651 9/14/2022
8.1.2 19,931 10/24/2021
8.1.1 459 10/23/2021
8.1.0 464 10/23/2021
8.0.0 12,543 10/13/2021
7.7.1 7,144 8/24/2021
7.7.0 399 8/24/2021
7.6.2 443 8/19/2021
7.6.1 13,018 6/17/2021
7.6.0 2,052 6/3/2021
7.5.7 2,442 4/30/2021
7.5.6 440 4/29/2021
7.5.5 685 4/13/2021
7.5.4 4,439 3/31/2021
7.5.3 5,717 3/21/2021
7.5.2 1,293 3/15/2021
7.5.1 879 2/16/2021
7.5.0 24,347 2/5/2021
7.4.6 487 2/2/2021
7.4.5.1 1,979 1/15/2021
7.4.5 1,110 1/13/2021
7.4.4 1,660 1/7/2021
7.4.3 2,007 12/16/2020
7.4.2.1 556 12/15/2020
7.4.2 524 12/9/2020
7.4.1 5,428 11/26/2020
7.4.0 517 11/26/2020
7.3.5 2,799 11/23/2020
7.3.4 1,774 11/11/2020
7.3.3 551 11/11/2020
7.3.2 1,335 11/1/2020
7.3.1.1 4,692 10/19/2020
7.3.1 532 10/15/2020
7.3.0 532 10/15/2020
7.2.2 3,494 9/29/2020
7.2.1 668 9/29/2020
7.2.0 539 9/29/2020
7.1.1.1 601 9/28/2020
7.1.1 637 9/25/2020
7.1.0 1,776 9/2/2020
7.0.0 6,221 8/24/2020
6.4.7 615 8/21/2020
6.4.6 608 8/21/2020
6.4.5 19,867 5/21/2020
6.4.4 1,878 5/12/2020
6.4.3 2,068 4/23/2020
6.4.2 560 4/20/2020
6.4.1.2 17,736 3/20/2020
6.4.1.1 620 3/20/2020
6.4.1 609 3/20/2020
6.4.0 5,876 2/25/2020
6.3.5 1,220 2/21/2020
6.3.4 676 2/21/2020
6.3.3 3,677 2/11/2020
6.3.2 674 2/11/2020
6.3.1.1 7,183 1/23/2020
6.3.0 4,222 12/18/2019
6.2.7 2,072 12/17/2019
6.2.6 1,302 12/4/2019
6.2.5 808 12/4/2019
6.2.4 3,437 12/1/2019
6.2.3 10,385 10/25/2019
6.2.2 3,497 10/8/2019
6.2.1 1,054 10/7/2019
6.2.0.1 5,372 9/25/2019
6.2.0 1,775 9/20/2019
6.1.5 3,148 9/16/2019
6.1.4.1 1,680 9/9/2019
6.1.4 2,115 9/3/2019
6.1.3 632 9/2/2019
6.1.2 820 8/28/2019
6.1.1 7,566 7/9/2019
6.1.0.1 28,492 7/5/2019
6.1.0 16,882 5/7/2019
6.0.6 1,810 5/3/2019
6.0.5 1,329 5/2/2019
6.0.4 4,710 4/24/2019
6.0.3 989 4/24/2019
6.0.2 7,794 3/22/2019
6.0.1.2 2,368 3/12/2019
6.0.1.1 847 3/12/2019
6.0.1 854 3/11/2019
6.0.0 1,634 3/6/2019
5.3.6 787 3/5/2019
5.3.5 755 3/5/2019
5.3.4 1,840 3/4/2019
5.3.3 1,458 2/28/2019
5.3.2 1,277 2/27/2019
5.3.1.1 879 2/25/2019
5.3.1 768 2/25/2019
5.3.0 728 2/25/2019
5.2.1 3,321 2/16/2019
5.2.0.1 3,821 2/7/2019
5.1.8 804 2/7/2019
5.1.7.1 1,040 1/30/2019
5.1.7 809 1/30/2019
5.1.6.1 824 1/24/2019
5.1.6 792 1/23/2019
5.1.5 795 1/23/2019
5.1.4.2 848 1/18/2019
5.1.3 1,548 1/14/2019
5.1.2 7,611 1/8/2019
5.1.1.1 823 1/8/2019
5.1.1 810 1/6/2019
5.1.0 1,383 1/2/2019
5.0.2 842 12/31/2018
5.0.1.1 828 12/31/2018
5.0.1 819 12/31/2018
5.0.0.1 953 12/14/2018
5.0.0 2,116 12/10/2018
4.2.5 879 11/23/2018
4.2.4 899 11/23/2018
4.2.3.1 865 11/22/2018
4.2.3 849 11/22/2018
4.2.2.2 1,118 11/19/2018
4.2.2.1 7,899 10/2/2018
4.2.2 937 10/1/2018
4.2.1.2 952 10/1/2018
4.2.1.1 932 9/27/2018
4.2.1 866 9/26/2018
4.2.0.5 928 9/26/2018
4.2.0.4 910 9/25/2018
4.2.0.3 932 9/25/2018
4.2.0.2 959 9/25/2018
4.2.0.1 914 9/25/2018
4.2.0 1,047 9/24/2018
4.1.0 886 9/21/2018
4.0.0.6 926 9/18/2018
4.0.0.5 962 9/18/2018
4.0.0.4 936 9/17/2018
4.0.0.3 3,255 9/7/2018
4.0.0.2 1,208 9/4/2018
4.0.0.1 1,312 9/4/2018
4.0.0 4,108 8/30/2018
3.2.0 2,814 8/28/2018
3.1.0 936 8/28/2018
3.0.6 2,517 8/27/2018
3.0.5 919 8/27/2018
3.0.4 949 8/27/2018
3.0.3 960 8/24/2018
3.0.2 1,149 8/24/2018
3.0.1.2 932 8/23/2018
3.0.1.1 980 8/21/2018
3.0.1 950 8/21/2018
3.0.0 1,868 8/16/2018
2.2.1 1,025 8/15/2018
2.2.0 974 8/14/2018
2.1.0 973 8/13/2018
2.0.2 999 8/7/2018
2.0.1 1,250 5/10/2018
2.0.0 1,836 4/26/2018
1.5.3.7 3,063 1/27/2018
1.5.3.6 1,132 1/15/2018
1.5.3.5 1,108 1/8/2018
1.5.3.4 1,110 1/3/2018
1.5.3.3 1,130 1/3/2018
1.5.3.2 1,119 12/27/2017
1.5.3.1 1,146 12/25/2017
1.5.3 1,080 12/25/2017
1.5.2 1,101 12/24/2017
1.5.1 1,121 12/23/2017
1.5.0 1,074 12/22/2017
1.4.7 968 12/2/2017
1.4.6 2,599 11/28/2017
1.4.5 1,158 11/28/2017
1.4.0 1,230 11/12/2017
1.3.5 3,890 11/8/2017
1.3.4 1,226 11/8/2017
1.3.3 1,288 11/2/2017
1.3.2 1,218 11/2/2017
1.3.1 1,259 9/12/2017
1.3.0 1,171 8/26/2017
1.2.1 1,057 8/23/2017
1.2.0 1,123 8/17/2017
1.1.1 1,054 8/17/2017
1.1.0 1,055 8/17/2017
1.0.0 1,868 8/12/2017

MediaType detection now also works with streams.