Base64FormattingOptions Wyliczenie

Definicja

Określa, czy odpowiednie ToBase64CharArray ToBase64String metody wstawia podziały wierszy w danych wyjściowych.

To wyliczenie obsługuje bitową kombinację jego wartości składowych.

C#
[System.Flags]
public enum Base64FormattingOptions
Dziedziczenie
Base64FormattingOptions
Atrybuty

Pola

InsertLineBreaks 1

Wstawia podziały wierszy po co 76 znakach w reprezentacji ciągu.

None 0

Nie wstawia podziałów wierszy po każdym 76 znakach w reprezentacji ciągu.

Przykłady

Poniższy przykład wywołuje metodę Convert.ToBase64String(Byte[], Base64FormattingOptions) z argumentem InsertLineBreaks , aby wstawić podziały wierszy w ciągu, który jest generowany przez kodowanie tablicy bajtów 100 elementów:

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

Jak pokazuje dane wyjściowe z przykładu, Convert.FromBase64String przywracanie oryginalnej tablicy bajtów kończy się powodzeniem; znaki podziału wiersza są ignorowane podczas konwersji.

Uwagi

Metody Convert.ToBase64CharArray i Convert.ToBase64String konwertują wartość tablicy 8-bitowych niepodpisanych liczb całkowitych na równoważną reprezentację ciągu składającą się z podstawowych 64 cyfr. Reprezentacja ciągu może zawierać jeden lub więcej podziałów wierszy, gdzie podział wiersza jest definiowany jako znak powrotu karetki (U+000D), a następnie znak źródła wierszy (U+000A). Ponieważ podziały wierszy są uznawane za znaki odstępu w kodowaniu base-64, są ignorowane podczas konwertowania zakodowanego ciągu base-64 z powrotem do tablicy bajtów. Podziały wierszy są po prostu wygodne podczas wyświetlania zakodowanego ciągu do kontrolki lub urządzenia, takiego jak okno konsoli.

Wartości None i InsertLineBreaks wzajemnie się wykluczają. W związku z tym, chociaż Base64FormattingOptions wyliczenie jest oznaczone atrybutem, nie ma sensu wykonać bitowej FlagsAttribute kombinacji tych dwóch wartości.

Dotyczy

Produkt Wersje
.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