Skip to content

About

A useful set of extensions for .NET native types

Resources

Stars

0 stars

Watchers

1 watching

Forks

Latest commit

 

History

30 Commits

Folders and files

Repository files navigation

Rochas.Extensions

English | Português | Español | Français | Deutsch


English

A useful set of extensions for .NET native types, targeting netstandard2.1. Oriented toward Brazilian/Portuguese localization.

Installation

dotnet add package Rochas.Extensions

Features

String Extensions

Serialization

  • FromJson<T>() — Deserializes a JSON string into an object
  • FromXML<T>() — Deserializes an XML string into an object
  • FromBase64String() — Decodes a Base64 string to a byte array
  • ToByteArray() — Converts a string to a byte array

Text Processing

  • FilterSpecialChars() — Removes accents and diacritics (e.g., "ção" → "cao")
  • RemoveTextConnectives() — Removes Portuguese stop words (prepositions, conjunctions)
  • Tokenize() — Splits a string into normalized tokens
  • ToNormalizedDescription() — Produces a clean, normalized text representation
  • HasNumber() — Checks if the string contains numeric digits
  • GetCustomHashCode() — Generates a hash using the FNV-1a algorithm

Runtime Code Execution

  • ExecuteAsSourceCode() — Compiles and executes C# code at runtime via Roslyn scripting, with timeout and cancellation support

Brazilian Tax ID Validation

  • IsCPFOrCNPJ() — Validates CPF (11-digit) and CNPJ (14-digit) tax IDs with check-digit verification

Data Compression

  • Zip() / UnZip() — GZip compression and decompression

Byte Array Extensions

  • ToNewString() — Converts a byte array to a UTF-8 string
  • ToNewBase64String() — Encodes a byte array to a Base64 string
  • ToNewHexString() — Converts a byte array to a hexadecimal string

Decimal Extensions

  • ToCultureString() — Formats the decimal using culture-aware rules
  • ToInFullText() — Converts a monetary value to Brazilian currency text (e.g., "R$ 1.250,00" → "um mil duzentos e cinquenta reais")

Double Extensions

  • ToInt() — Rounds the double value to the nearest integer

Long Extensions

  • ToPhoneNumber() — Formats a long as a Brazilian phone number (supports 8 and 9-digit DDD+number)

Object Extensions

  • IsNumeric() — Checks whether the object represents a numeric value
  • IsMonetaryValue() — Checks whether the object represents a monetary value
  • ToJson() — Serializes the object to a JSON string
  • ToXML() — Serializes the object to an XML string
  • DumpToJson() — Serializes the object to a formatted (pretty-printed) JSON string
  • DumpToXML() — Serializes the object to a formatted XML string
  • Clone<T>() — Creates a deep clone of the object via JSON serialization
  • ToHttpContent() — Wraps the object as StringContent for HTTP requests
  • GetDiff() — Computes the differences between two objects

Exception Extensions

  • GetResume() — Extracts an ExceptionResume value object containing a summary of the exception

Requirements

  • netstandard2.1

Tests and Coverage

tests

  • 105 unit tests (xUnit) covering all extension methods
  • Test project: Rochas.Extensions.Tests (net9.0)

License

GPL v2 — see LICENSE.


Português

Um conjunto útil de extensões para tipos nativos do .NET, direcionado ao netstandard2.1. Orientado à localização brasileira/portuguesa.

Instalação

dotnet add package Rochas.Extensions

Funcionalidades

Extensões de String

Serialização

  • FromJson<T>() — Deserializa uma string JSON em um objeto
  • FromXML<T>() — Deserializa uma string XML em um objeto
  • FromBase64String() — Decodifica uma string Base64 em um array de bytes
  • ToByteArray() — Converte uma string em um array de bytes

Processamento de Texto

  • FilterSpecialChars() — Remove acentos e diacríticos (ex.: "ção" → "cao")
  • RemoveTextConnectives() — Remove conectivos/palavras de parada do português
  • Tokenize() — Divide a string em tokens normalizados
  • ToNormalizedDescription() — Gera uma representação de texto limpa e normalizada
  • HasNumber() — Verifica se a string contém dígitos numéricos
  • GetCustomHashCode() — Gera um hash usando o algoritmo FNV-1a

Execução de Código em Runtime

  • ExecuteAsSourceCode() — Compila e executa código C# em tempo de execução via Roslyn scripting, com suporte a timeout e cancelamento

Validação de Documentos Fiscais Brasileiros

  • IsCPFOrCNPJ() — Valida CPF (11 dígitos) e CNPJ (14 dígitos) com verificação de dígitos verificadores

Compressão de Dados

  • Zip() / UnZip() — Compressão e descompressão GZip

Extensões de Array de Bytes

  • ToNewString() — Converte um array de bytes em uma string UTF-8
  • ToNewBase64String() — Codifica um array de bytes em uma string Base64
  • ToNewHexString() — Converte um array de bytes em uma string hexadecimal

Extensões de Decimal

  • ToCultureString() — Formata o decimal usando regras de localidade
  • ToInFullText() — Converte um valor monetário em texto de moeda brasileira (ex.: "R$ 1.250,00" → "um mil duzentos e cinquenta reais")

Extensões de Double

  • ToInt() — Arredonda o valor double para o inteiro mais próximo

Extensões de Long

  • ToPhoneNumber() — Formata um long como telefone brasileiro (suporta DDD+numero com 8 e 9 dígitos)

Extensões de Objeto

  • IsNumeric() — Verifica se o objeto representa um valor numérico
  • IsMonetaryValue() — Verifica se o objeto representa um valor monetário
  • ToJson() — Serializa o objeto em uma string JSON
  • ToXML() — Serializa o objeto em uma string XML
  • DumpToJson() — Serializa o objeto em JSON formatado (pretty-print)
  • DumpToXML() — Serializa o objeto em XML formatado
  • Clone<T>() — Cria um clone profundo do objeto via serialização JSON
  • ToHttpContent() — Embala o objeto como StringContent para requisições HTTP
  • GetDiff() — Calcula as diferenças entre dois objetos

Extensões de Exceção

  • GetResume() — Extrai um value object ExceptionResume contendo um resumo da exceção

Requisitos

  • netstandard2.1

Testes e Cobertura

tests

  • 105 testes unitários (xUnit) cobrindo todos os métodos de extensão
  • Projeto de testes: Rochas.Extensions.Tests (net9.0)

Licença

GPL v2 — veja LICENSE.


Español

Un conjunto útil de extensiones para tipos nativos de .NET, dirigido a netstandard2.1. Orientado a la localización brasileña/portuguesa.

Instalación

dotnet add package Rochas.Extensions

Características

Extensiones de String

Serialización

  • FromJson<T>() — Deserializa una cadena JSON en un objeto
  • FromXML<T>() — Deserializa una cadena XML en un objeto
  • FromBase64String() — Decodifica una cadena Base64 en un arreglo de bytes
  • ToByteArray() — Convierte una cadena en un arreglo de bytes

Procesamiento de Texto

  • FilterSpecialChars() — Elimina acentos y diacríticos (ej.: "ção" → "cao")
  • RemoveTextConnectives() — Elimina conectivos/palabras de parada en portugués
  • Tokenize() — Divide la cadena en tokens normalizados
  • ToNormalizedDescription() — Genera una representación de texto limpia y normalizada
  • HasNumber() — Verifica si la cadena contiene dígitos numéricos
  • GetCustomHashCode() — Genera un hash usando el algoritmo FNV-1a

Ejecución de Código en Runtime

  • ExecuteAsSourceCode() — Compila y ejecuta código C# en tiempo de ejecución mediante Roslyn scripting, con soporte para timeout y cancelación

Validación de Documentos Fiscales Brasileños

  • IsCPFOrCNPJ() — Valida CPF (11 dígitos) y CNPJ (14 dígitos) con verificación de dígitos de control

Compresión de Datos

  • Zip() / UnZip() — Compresión y descompresión GZip

Extensiones de Arreglo de Bytes

  • ToNewString() — Convierte un arreglo de bytes en una cadena UTF-8
  • ToNewBase64String() — Codifica un arreglo de bytes en una cadena Base64
  • ToNewHexString() — Convierte un arreglo de bytes en una cadena hexadecimal

Extensiones de Decimal

  • ToCultureString() — Formatea el decimal usando reglas de configuración regional
  • ToInFullText() — Convierte un valor monetario en texto de moneda brasileña (ej.: "R$ 1.250,00" → "um mil duzentos e cinquenta reais")

Extensiones de Double

  • ToInt() — Redondea el valor double al entero más cercano

Extensiones de Long

  • ToPhoneNumber() — Formatea un long como teléfono brasileño (soporta DDD+número con 8 y 9 dígitos)

Extensiones de Objeto

  • IsNumeric() — Verifica si el objeto representa un valor numérico
  • IsMonetaryValue() — Verifica si el objeto representa un valor monetario
  • ToJson() — Serializa el objeto en una cadena JSON
  • ToXML() — Serializa el objeto en una cadena XML
  • DumpToJson() — Serializa el objeto en JSON formateado (pretty-print)
  • DumpToXML() — Serializa el objeto en XML formateado
  • Clone<T>() — Crea un clon profundo del objeto mediante serialización JSON
  • ToHttpContent() — Empaqueta el objeto como StringContent para solicitudes HTTP
  • GetDiff() — Calcula las diferencias entre dos objetos

Extensión de Excepción

  • GetResume() — Extrae un value object ExceptionResume que contiene un resumen de la excepción

Requisitos

  • netstandard2.1

Pruebas y Cobertura

tests

  • 105 pruebas unitarias (xUnit) cubriendo todos los métodos de extensión
  • Proyecto de pruebas: Rochas.Extensions.Tests (net9.0)

Licencia

GPL v2 — véase LICENSE.


Français

Un ensemble utile d'extensions pour les types natifs de .NET, ciblant le netstandard2.1. Orienté vers la localisation brésilienne/portugaise.

Installation

dotnet add package Rochas.Extensions

Fonctionnalités

Extensions de String

Sérialisation

  • FromJson<T>() — Désérialise une chaîne JSON en un objet
  • FromXML<T>() — Désérialise une chaîne XML en un objet
  • FromBase64String() — Décode une chaîne Base64 en un tableau d'octets
  • ToByteArray() — Convertit une chaîne en un tableau d'octets

Traitement de Texte

  • FilterSpecialChars() — Supprime les accents et diacritiques (ex. : "ção" → "cao")
  • RemoveTextConnectives() — Supprime les mots de liaison/stop en portugais
  • Tokenize() — Découpe la chaîne en tokens normalisés
  • ToNormalizedDescription() — Génère une représentation de texte propre et normalisée
  • HasNumber() — Vérifie si la chaîne contient des chiffres numériques
  • GetCustomHashCode() — Génère un hash en utilisant l'algorithme FNV-1a

Exécution de Code à l'Exécution

  • ExecuteAsSourceCode() — Compile et exécute du code C# au moment de l'exécution via Roslyn scripting, avec support du timeout et de l'annulation

Validation de Documents Fiscaux Brésiliens

  • IsCPFOrCNPJ() — Valide les CPF (11 chiffres) et CNPJ (14 chiffres) avec vérification des chiffres de contrôle

Compression de Données

  • Zip() / UnZip() — Compression et décompression GZip

Extensions de Tableau d'Octets

  • ToNewString() — Convertit un tableau d'octets en une chaîne UTF-8
  • ToNewBase64String() — Encode un tableau d'octets en une chaîne Base64
  • ToNewHexString() — Convertit un tableau d'octets en une chaîne hexadécimale

Extensions de Decimal

  • ToCultureString() — Formate le decimal en utilisant les règles de culture
  • ToInFullText() — Convertit une valeur monétaire en texte de monnaie brésilienne (ex. : "R$ 1.250,00" → "um mil duzentos e cinquenta reais")

Extensions de Double

  • ToInt() — Arrondit la valeur double à l'entier le plus proche

Extensions de Long

  • ToPhoneNumber() — Formate un long en numéro de téléphone brésilien (supporte DDD+numéro à 8 et 9 chiffres)

Extensions d'Objet

  • IsNumeric() — Vérifie si l'objet représente une valeur numérique
  • IsMonetaryValue() — Vérifie si l'objet représente une valeur monétaire
  • ToJson() — Sérialise l'objet en une chaîne JSON
  • ToXML() — Sérialise l'objet en une chaîne XML
  • DumpToJson() — Sérialise l'objet en JSON formaté (pretty-print)
  • DumpToXML() — Sérialise l'objet en XML formaté
  • Clone<T>() — Crée un clone profond de l'objet via sérialisation JSON
  • ToHttpContent() — Emballe l'objet comme StringContent pour les requêtes HTTP
  • GetDiff() — Calcule les différences entre deux objets

Extension d'Exception

  • GetResume() — Extrait un value object ExceptionResume contenant un résumé de l'exception

Prérequis

  • netstandard2.1

Tests et Couverture

tests

  • 105 tests unitaires (xUnit) couvrant toutes les méthodes d'extension
  • Projet de test : Rochas.Extensions.Tests (net9.0)

Licence

GPL v2 — voir LICENSE.


Deutsch

Eine nützliche Sammlung von Erweiterungen für .NET-native Typen, die auf netstandard2.1 abzielt. Ausgerichtet auf die brasilianische/portugiesische Lokalisierung.

Installation

dotnet add package Rochas.Extensions

Funktionen

String-Erweiterungen

Serialisierung

  • FromJson<T>() — Deserialisiert einen JSON-String in ein Objekt
  • FromXML<T>() — Deserialisiert einen XML-String in ein Objekt
  • FromBase64String() — Dekodiert einen Base64-String in ein Byte-Array
  • ToByteArray() — Konvertiert einen String in ein Byte-Array

Textverarbeitung

  • FilterSpecialChars() — Entfernt Akzente und Diakritika (z.B. "ção" → "cao")
  • RemoveTextConnectives() — Entfernt portugiesische Funktionswörter/Stopwörter
  • Tokenize() — Teilt den String in normalisierte Tokens
  • ToNormalizedDescription() — Erzeugt eine saubere, normalisierte Textdarstellung
  • HasNumber() — Prüft, ob der String numerische Ziffern enthält
  • GetCustomHashCode() — Erzeugt einen Hash mit dem FNV-1a-Algorithmus

Laufzeit-Codeausführung

  • ExecuteAsSourceCode() — Kompiliert und führt C#-Code zur Laufzeit über Roslyn Scripting aus, mit Timeout- und Abbruchunterstützung

Validierung Brasilianischer Steuer-IDs

  • IsCPFOrCNPJ() — Validiert CPF (11-stellig) und CNPJ (14-stellig) mit Prüfziffernverifizierung

Datenkompression

  • Zip() / UnZip() — GZip-Kompression und -Dekompression

Byte-Array-Erweiterungen

  • ToNewString() — Konvertiert ein Byte-Array in einen UTF-8-String
  • ToNewBase64String() — Kodiert ein Byte-Array in einen Base64-String
  • ToNewHexString() — Konvertiert ein Byte-Array in einen Hexadezimal-String

Decimal-Erweiterungen

  • ToCultureString() — Formatiert den Decimal mit kulturspezifischen Regeln
  • ToInFullText() — Konvertiert einen Geldwert in brasilianischen Währungstext (z.B. "R$ 1.250,00" → "um mil duzentos e cinquenta reais")

Double-Erweiterungen

  • ToInt() — Rundet den Double-Wert auf die nächste Ganzzahl

Long-Erweiterungen

  • ToPhoneNumber() — Formatiert einen Long als brasilianische Telefonnummer (unterstützt Vorwahl+Nummer mit 8 und 9 Ziffern)

Objekt-Erweiterungen

  • IsNumeric() — Prüft, ob das Objekt einen numerischen Wert darstellt
  • IsMonetaryValue() — Prüft, ob das Objekt einen Geldwert darstellt
  • ToJson() — Serialisiert das Objekt als JSON-String
  • ToXML() — Serialisiert das Objekt als XML-String
  • DumpToJson() — Serialisiert das Objekt als formatierten JSON-String (Pretty-Print)
  • DumpToXML() — Serialisiert das Objekt als formatierten XML-String
  • Clone<T>() — Erstellt einen Tiefen-Klon des Objekts über JSON-Serialisierung
  • ToHttpContent() — Verpackt das Objekt als StringContent für HTTP-Anfragen
  • GetDiff() — Berechnet die Unterschiede zwischen zwei Objekten

Exception-Erweiterung

  • GetResume() — Extrahiert ein Value-Object ExceptionResume mit einer Zusammenfassung der Exception

Voraussetzungen

  • netstandard2.1

Tests und Abdeckung

tests

  • 105 Unit-Tests (xUnit), die alle Erweiterungsmethoden abdecken
  • Testprojekt: Rochas.Extensions.Tests (net9.0)

Lizenz

GPL v2 — siehe LICENSE.

About

A useful set of extensions for .NET native types

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages