Leggere in inglese

Condividi tramite


Base64FormattingOptions Enumerazione

Definizione

Specifica se i metodi rilevanti ToBase64CharArray e ToBase64String inseriscono un'interruzione di riga nell'output.

Questa enumerazione supporta una combinazione bit per bit dei rispettivi valori dei membri.

C#
[System.Flags]
public enum Base64FormattingOptions
Ereditarietà
Base64FormattingOptions
Attributi

Campi

InsertLineBreaks 1

Inserisce interruzioni di riga ogni 76 caratteri nella rappresentazione di stringa.

None 0

Non inserisce interruzioni di riga ogni 76 caratteri nella rappresentazione di stringa.

Esempio

Nell'esempio seguente viene chiamato il Convert.ToBase64String(Byte[], Base64FormattingOptions) metodo con un argomento per inserire interruzioni di riga nella stringa prodotta tramite la codifica di una InsertLineBreaks matrice di byte a 100 elementi:

C#
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

Come illustrato dall'output dell'esempio, Convert.FromBase64String l'operazione riesce a ripristinare la matrice di byte originale. I caratteri di interruzione della riga vengono ignorati durante la conversione.

Commenti

I Convert.ToBase64CharArray metodi e Convert.ToBase64String converteno il valore di una matrice di interi senza segno a 8 bit in una rappresentazione stringa equivalente costituita da 64 cifre di base. La rappresentazione stringa può contenere una o più interruzioni di riga, in cui un'interruzione di riga è definita come carattere restituito a capo (U+000D) seguito da un carattere di feed di riga (U+000A). Poiché le interruzioni di riga sono considerate caratteri di spazio vuoto in una codifica base-64, vengono ignorate durante la conversione di una stringa codificata base-64 in una matrice di byte. Le interruzioni di riga sono semplicemente utili quando si visualizza la stringa codificata in un controllo o in un dispositivo, ad esempio una finestra della console.

I valori di None e InsertLineBreaks si escludono a vicenda. Pertanto, sebbene l'enumerazione Base64FormattingOptions sia contrassegnata con l'attributo FlagsAttribute, non ha senso eseguire una combinazione bit per bit di questi due valori.

Si applica a

Prodotto Versioni
.NET Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7
.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
.NET Standard 2.0, 2.1