Utilzao 4.0.1

dotnet add package Utilzao --version 4.0.1
                    
NuGet\Install-Package Utilzao -Version 4.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="Utilzao" Version="4.0.1" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Utilzao" Version="4.0.1" />
                    
Directory.Packages.props
<PackageReference Include="Utilzao" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add Utilzao --version 4.0.1
                    
#r "nuget: Utilzao, 4.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.
#:package Utilzao@4.0.1
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=Utilzao&version=4.0.1
                    
Install as a Cake Addin
#tool nuget:?package=Utilzao&version=4.0.1
                    
Install as a Cake Tool

Utilzão

NuGet NuGet

Coleção de classes e métodos úteis em C# para manipulação de strings, datas, envio de e-mail, etc.

A ideia desse projeto é agrupar várias soluções e recursos "úteis" que podem ser utilizados em projetos com C#. Coisas simples como aplicar uma máscara a um string, validar um CPF, remover caracteres de uma string, etc. O objetivo é fazer um componente "utilzão" agrupando todos esses recursos úteis em um componente só!

A solução é dividida nos seguintes projetos:

Classes úteis

SmtpUtil

Classe que permite enviar e-mail via SMTP.

// Configuração do SmtpClient para utilização do G-mail
var smtpGmail = new SmtpClient
{
    Host                  = "smtp.gmail.com",
    Port                  = 587,
    EnableSsl             = true,
    DeliveryMethod        = SmtpDeliveryMethod.Network,
    UseDefaultCredentials = true,
    Credentials           = new NetworkCredential("seu_email@gmail.com", "sua_senha")
};

// Informando um anexo (por exemplo, um arquivo TXT)
using MemoryStream memoryStream = new();
byte[] contentAsBytes = Encoding.UTF8.GetBytes("Olá, sou um anexo!");
memoryStream.Write(contentAsBytes, 0, contentAsBytes.Length);
memoryStream.Seek(0, SeekOrigin.Begin);

var contentType = new ContentType
{
    MediaType = MediaTypeNames.Text.Plain,
    Name = "AnexoEmail.txt"
};

var anexo = new Attachment(memoryStream, contentType);

var email = new SmtpUtil("emailRemetente@seudominio.com", new[] { "email_destinatario_1@seudominio.com" }, "<b>Você recebeu uma mensagem.</b>", smtpGmail)
{
    Anexos = new List<Attachment> { anexo },
    EmailsDestinatariosEmCopia = new[] { "email_destinatario_2@seudominio.com", "email_destinatario_3@seudominio.com" },
    NomeRemetente = "Utilzão",
    Assunto = "Você recebeu um e-mail.",
    MensagemEmHtml = true
};

// Enviando a mensagem
email.Enviar();

Extension methods

Coleção de extension methods, com algumas funcionalidades e facilitades úteis que utilizo com frequência:

Conversões

ConverterParaEnum - Converte um valor em um elemento de um enum. Caso o valor não seja encontrado, o valor default é retornado.

public enum EnumTeste
{
    Valor1 = 1,
    Valor2 = 2,
    Valor3 = 3
}

var enumTeste = 1.ConverterParaEnum(EnumTeste.Valor2);
// enumTeste == EnumTeste.Valor1

var enumTeste2 = 5.ConverterParaEnum(EnumTeste.Valor2);
// enumTeste2 == EnumTeste.Valor2, pois o item do enum com o valor 5 não existe.

ConverterDataPorFormato - Converte uma string em uma data, a partir do formato exato informado.

var data = "13/05/2018 23:12:55".ConverterDataPorFormato("dd/MM/yyyy HH:mm:ss");
// data == new DateTime(2018, 5, 13, 23, 12, 55)

var data = "13/05/2018".ConverterDataPorFormato("dd/MM/yyyy HH:mm:ss");
// data == null, pois a string "13/05/2018" não possui o formato "dd/MM/yyyy HH:mm:ss".

ConverterDataUtcHorarioOficialBrasil - Converte uma data UTC em uma data com o horário oficial brasileiro (Brasília).

var dataOficialBrasil = DateTime.UtcNow.ConverterDataUtcHorarioOficialBrasil();

var data = DateTime.Now.ConverterDataUtcHorarioOficialBrasil();
// Exception, pois DateTime.Now não é uma data UTC.

Formatações

Formatar - Formata uma string a partir de um padrão.

var aux = "123456789".Formatar("###.###-###");
// aux == 123.456-789

FormatarCpf - Formata uma string aplicando a máscara para CPF.

var aux = "42580284010".FormatarCpf();
// aux == "425.802.840-10"

FormatarCnpj - Formata uma string aplicando a máscara para CNPJ.

var aux = "84552945000106".FormatarCnpj();
// aux == "84.552.945/0001-06"

RemoverCaracter - Remove de uma string alguns caracteres desejados.

var aux = "84.552.945/0001-06".RemoverCaracter(".", "/", "-");
// aux == "84552945000106"

ExtrairNumeros - Extrai somente os caracteres numéricos de uma string.

var aux = "84.552.945/0001-06".ExtrairNumeros();
// aux == "84552945000106"

RemoverAcentuacao - Remove todos os caracteres acentuados de uma string.

var aux = "Ãóçê".RemoverAcentuacao();
// aux == "Aoce"

RemoverHtml - Remove todas as tags HTML de uma string

var aux = "<span style=\"border: 1px solid red;\"><b>Removeu toda formatação HTML</b></span></br>".RemoverHtml();
// aux == "Removeu toda formatação HTML"

Validações

ValidarCnpj - Valida se uma determinada string é o número válido de um CNPJ.

var aux = "84.552.945/0001-06".ValidarCnpj();
// aux == true
var aux = "123".ValidarCnpj();
// aux == false

ValidarCpf - Valida se uma determinada string é o número válido de um CPF.

var aux = "425.802.840-10".ValidarCpf();
// aux == true
var aux = "123".ValidarCpf();
// aux == false

Critptografia

Criptografar - Criptografa uma string, a partir de uma chave.

var chave = "Essa é a minha chave secreta".Criptografar(chave: "8aba82e7-c209-46fc-b2b1-4f36d32a7377");
// chave == "T5GMYervItZXmHjsNCcd0llen1nxzTTIxB6MSdfiO8bLvOJeLark5bn4qF9Q8vMAPO09CKVR4cPyoangq2C53A=="

Descriptografar - Descriptografa uma string, a partir de uma chave.

var chave = "T5GMYervItZXmHjsNCcd0llen1nxzTTIxB6MSdfiO8bLvOJeLark5bn4qF9Q8vMAPO09CKVR4cPyoangq2C53A==".Descriptografar(chave: "8aba82e7-c209-46fc-b2b1-4f36d32a7377");
// chave == "Essa é a minha chave secreta"

Outros

SubstringSafe - Ao executar o método "Substring" em uma string, caso o valor do parâmentro "length" seja maior que a quantidade de caracteres da string, uma exception "ArgumentOutOfRangeException" é disparada.

var substring = "Hello World".Substring(0, 1000); // O tamanho (parâmetro length) é maior que a quantida de caracteres da string.
\\ Uma exception "ArgumentOutOfRangeException" é disparada

O método "SubstringSafe" impede que essa exception seja disparada, pois caso o valor do parâmetro "length" seja maior que a quantidade de caracteres da string, será retornado os caracteres até o término da string. Veja o exemplo:

var substring = "Hello World".SubstringSafe(0, 1000);
\\ substring = "Hello World"

Dependências

  • Utilzao: .NET Standard 2.1+

Informações sobre versões suportadas em https://docs.microsoft.com/pt-br/dotnet/standard/net-standard

Instalação

NuGet

Install-Package Utilzao

.NET CLI

dotnet add package Utilzao
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 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.  net9.0 was computed.  net9.0-android was computed.  net9.0-browser was computed.  net9.0-ios was computed.  net9.0-maccatalyst was computed.  net9.0-macos was computed.  net9.0-tvos was computed.  net9.0-windows was computed.  net10.0 was computed.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
.NET Core netcoreapp3.0 was computed.  netcoreapp3.1 was computed. 
.NET Standard netstandard2.1 is compatible. 
MonoAndroid monoandroid was computed. 
MonoMac monomac was computed. 
MonoTouch monotouch was computed. 
Tizen 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.1

    • No dependencies.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
4.0.1 118 10/19/2025
4.0.0 112 10/19/2025
3.0.2 2,700 1/30/2020
3.0.1 1,328 1/30/2020
3.0.0 1,315 1/19/2020
2.0.6 2,215 2/12/2019
2.0.1 1,519 9/27/2018
2.0.0 1,548 8/28/2018
1.0.5 1,978 5/25/2018