Ler em inglês

Partilhar via


Base64FormattingOptions Enumeração

Definição

Especifica se os métodos ToBase64CharArray e ToBase64String relevantes inserem interrupções em sua saída.

Essa enumeração dá suporte a uma combinação bit a bit dos valores de membro.

[System.Flags]
public enum Base64FormattingOptions
Herança
Base64FormattingOptions
Atributos

Campos

InsertLineBreaks 1

Insere quebras de linha após cada 76 caracteres na representação de cadeia de caracteres.

None 0

Não insere quebras de linha a cada 76 caracteres na representação de cadeia de caracteres.

Exemplos

O exemplo a seguir chama o Convert.ToBase64String(Byte[], Base64FormattingOptions) método com um InsertLineBreaks argumento para inserir quebras de linha na cadeia de caracteres produzida pela codificação de uma matriz de bytes de 100 elementos:

using System;

public class Example
{
   public static void Main()
   {
       // Define a byte array.
       var bytes = new byte[100];
       int originalTotal = 0;
       for (int ctr = 0; ctr <= bytes.GetUpperBound(0); ctr++) {
          bytes[ctr] = (byte)(ctr + 1);
          originalTotal += bytes[ctr];
       }
       // Display summary information about the array.
       Console.WriteLine("The original byte array:");
       Console.WriteLine("   Total elements: {0}", bytes.Length);
       Console.WriteLine("   Length of String Representation: {0}",
                         BitConverter.ToString(bytes).Length);
       Console.WriteLine("   Sum of elements: {0:N0}", originalTotal);
       Console.WriteLine();

       // Convert the array to a base 64 string.
       string s = Convert.ToBase64String(bytes,
                                         Base64FormattingOptions.InsertLineBreaks);
       Console.WriteLine("The base 64 string:\n   {0}\n", s);

       // Restore the byte array.
       Byte[] newBytes = Convert.FromBase64String(s);
       int newTotal = 0;
       foreach (var newByte in newBytes)
          newTotal += newByte;

       // Display summary information about the restored array.
       Console.WriteLine("   Total elements: {0}", newBytes.Length);
       Console.WriteLine("   Length of String Representation: {0}",
                         BitConverter.ToString(newBytes).Length);
       Console.WriteLine("   Sum of elements: {0:N0}", newTotal);
   }
}
// The example displays the following output:
//   The original byte array:
//      Total elements: 100
//      Length of String Representation: 299
//      Sum of elements: 5,050
//
//   The base 64 string:
//      AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobHB0eHyAhIiMkJSYnKCkqKywtLi8wMTIzNDU2Nzg5
//   Ojs8PT4/QEFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaW1xdXl9gYWJjZA==
//
//      Total elements: 100
//      Length of String Representation: 299
//      Sum of elements: 5,050

Como mostra a saída do exemplo, o Convert.FromBase64String consegue restaurar a matriz de bytes original; os caracteres de quebra de linha são ignorados durante a conversão.

Comentários

Os Convert.ToBase64CharArray métodos e Convert.ToBase64String convertem o valor de uma matriz de inteiros sem sinal de 8 bits em uma representação de cadeia de caracteres equivalente que consiste em dígitos base de 64. A representação de cadeia de caracteres pode conter uma ou mais quebras de linha, em que uma quebra de linha é definida como um caractere de retorno de carro (U+000D) seguido por um caractere de feed de linha (U+000A). Como as quebras de linha são consideradas caracteres de espaço em branco em uma codificação base-64, elas são ignoradas ao converter uma cadeia de caracteres codificada em base 64 de volta em uma matriz de bytes. As quebras de linha são simplesmente convenientes ao exibir a cadeia de caracteres codificada em um controle ou um dispositivo, como uma janela de console.

Os None valores e InsertLineBreaks são mutuamente exclusivos. Portanto, embora a Base64FormattingOptions enumeração seja marcada com o FlagsAttribute atributo , não faz sentido executar uma combinação bit a bit desses dois valores.

Aplica-se a

Produto Versões
.NET Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 2.0, 2.1