Język

AsnDecoder.ReadNamedBitListValue Metoda

Definicja

Przeciążenia

Nazwa Opis
ReadNamedBitListValue(ReadOnlySpan<Byte>, AsnEncodingRules, Type, Int32, Nullable<Asn1Tag>)

Odczytuje element NamedBitList z source z określonym tagiem w ramach określonych reguł kodowania, konwertując go na wyliczenie [FlagsAttribute] określone przez flagsEnumType.

ReadNamedBitListValue<TFlagsEnum>(ReadOnlySpan<Byte>, AsnEncodingRules, Int32, Nullable<Asn1Tag>)

Odczytuje element NamedBitList z source z określonym tagiem w ramach określonych reguł kodowania, konwertując go na wyliczenie [FlagsAttribute] określone przez TFlagsEnum.

ReadNamedBitListValue(ReadOnlySpan<Byte>, AsnEncodingRules, Type, Int32, Nullable<Asn1Tag>)

Źródło:
AsnDecoder.NamedBitList.cs
Źródło:
AsnDecoder.NamedBitList.cs
Źródło:
AsnDecoder.NamedBitList.cs
Źródło:
AsnDecoder.NamedBitList.cs
Źródło:
AsnDecoder.NamedBitList.cs
Źródło:
AsnDecoder.NamedBitList.cs
Źródło:
AsnDecoder.NamedBitList.cs
Źródło:
AsnDecoder.NamedBitList.cs

Odczytuje element NamedBitList z source z określonym tagiem w ramach określonych reguł kodowania, konwertując go na wyliczenie [FlagsAttribute] określone przez flagsEnumType.

public static Enum ReadNamedBitListValue(ReadOnlySpan<byte> source, System.Formats.Asn1.AsnEncodingRules ruleSet, Type flagsEnumType, out int bytesConsumed, System.Formats.Asn1.Asn1Tag? expectedTag = default);
static member ReadNamedBitListValue : ReadOnlySpan<byte> * System.Formats.Asn1.AsnEncodingRules * Type * int * Nullable<System.Formats.Asn1.Asn1Tag> -> Enum
Public Shared Function ReadNamedBitListValue (source As ReadOnlySpan(Of Byte), ruleSet As AsnEncodingRules, flagsEnumType As Type, ByRef bytesConsumed As Integer, Optional expectedTag As Nullable(Of Asn1Tag) = Nothing) As Enum

Parametry

source
ReadOnlySpan<Byte>

Bufor zawierający zakodowane dane.

ruleSet
AsnEncodingRules

Ograniczenia kodowania używane podczas interpretowania danych.

flagsEnumType
Type

Typ obiektu reprezentującego typ docelowy.

bytesConsumed
Int32

Gdy ta metoda zwróci, łączna liczba bajtów dla zakodowanej wartości. Ten parametr jest traktowany jako niezainicjowany.

expectedTag
Nullable<Asn1Tag>

Tag do sprawdzenia przed przeczytaniem lub null tagu domyślnego (Universal 3).

Zwraca

Wartość NamedBitList przekonwertowana na flagsEnumType.

Wyjątki

ruleSet nie jest zdefiniowany.

Następna wartość nie ma poprawnego tagu.

— lub —

Kodowanie długości jest nieprawidłowe w ramach bieżących reguł kodowania.

— lub —

Zawartość nie jest prawidłowa zgodnie z bieżącymi regułami kodowania.

— lub —

Zakodowana wartość jest zbyt duża, aby zmieścić się w flagsEnumType wartości.

flagsEnumType nie jest typem wyliczeniowym.

— lub —

flagsEnumType nie został zadeklarowany za pomocą polecenia FlagsAttribute

— lub —

expectedTag.TagClass to Universal, ale expectedTagTagValue . nie jest poprawny dla metody .

flagsEnumType jest null

Zobacz też

Dotyczy

ReadNamedBitListValue<TFlagsEnum>(ReadOnlySpan<Byte>, AsnEncodingRules, Int32, Nullable<Asn1Tag>)

Źródło:
AsnDecoder.NamedBitList.cs
Źródło:
AsnDecoder.NamedBitList.cs
Źródło:
AsnDecoder.NamedBitList.cs
Źródło:
AsnDecoder.NamedBitList.cs
Źródło:
AsnDecoder.NamedBitList.cs
Źródło:
AsnDecoder.NamedBitList.cs
Źródło:
AsnDecoder.NamedBitList.cs
Źródło:
AsnDecoder.NamedBitList.cs

Odczytuje element NamedBitList z source z określonym tagiem w ramach określonych reguł kodowania, konwertując go na wyliczenie [FlagsAttribute] określone przez TFlagsEnum.

public static TFlagsEnum ReadNamedBitListValue<TFlagsEnum>(ReadOnlySpan<byte> source, System.Formats.Asn1.AsnEncodingRules ruleSet, out int bytesConsumed, System.Formats.Asn1.Asn1Tag? expectedTag = default) where TFlagsEnum : Enum;
static member ReadNamedBitListValue : ReadOnlySpan<byte> * System.Formats.Asn1.AsnEncodingRules * int * Nullable<System.Formats.Asn1.Asn1Tag> -> 'FlagsEnum (requires 'FlagsEnum :> Enum)
Public Shared Function ReadNamedBitListValue(Of TFlagsEnum As Enum) (source As ReadOnlySpan(Of Byte), ruleSet As AsnEncodingRules, ByRef bytesConsumed As Integer, Optional expectedTag As Nullable(Of Asn1Tag) = Nothing) As TFlagsEnum

Parametry typu

TFlagsEnum

Typ wyliczenia docelowego.

Parametry

source
ReadOnlySpan<Byte>

Bufor zawierający zakodowane dane.

ruleSet
AsnEncodingRules

Ograniczenia kodowania używane podczas interpretowania danych.

bytesConsumed
Int32

Gdy ta metoda zwróci, łączna liczba bajtów dla zakodowanej wartości. Ten parametr jest traktowany jako niezainicjowany.

expectedTag
Nullable<Asn1Tag>

Tag do sprawdzenia przed przeczytaniem lub null tagu domyślnego (Universal 3).

Zwraca

TFlagsEnum

Wartość NamedBitList przekonwertowana na TFlagsEnum.

Wyjątki

ruleSet nie jest zdefiniowany.

Następna wartość nie ma poprawnego tagu.

— lub —

Kodowanie długości jest nieprawidłowe w ramach bieżących reguł kodowania.

— lub —

Zawartość nie jest prawidłowa zgodnie z bieżącymi regułami kodowania.

— lub —

Zakodowana wartość jest zbyt duża, aby zmieścić się w TFlagsEnum wartości.

TFlagsEnum nie jest typem wyliczeniowym.

— lub —

TFlagsEnum nie został zadeklarowany za pomocą polecenia FlagsAttribute

— lub —

expectedTag.TagClass to Universal, ale expectedTagTagValue . nie jest poprawny dla metody .

Uwagi

Wyrównanie bitów wykonywane przez tę metodę polega na interpretowaniu najbardziej znaczącego bitu w pierwszym bajtzie wartości jako najmniej znaczącego bitu w TFlagsEnumelemecie , przy czym bity zwiększają wartość do najmniej znaczącego bitu pierwszego bajtu, postępując zgodnie z najbardziej znaczącym bitem drugiego bajtu itd. W ramach tego schematu można używać razem następującej deklaracji typu ASN.1 i wyliczenia języka C#:

KeyUsage ::= BIT STRING {
  digitalSignature   (0),
  nonRepudiation     (1),
  keyEncipherment    (2),
  dataEncipherment   (3),
  keyAgreement       (4),
  keyCertSign        (5),
  cRLSign            (6),
  encipherOnly       (7),
  decipherOnly       (8) }
[Flags]
enum KeyUsage
{
    None              = 0,
    DigitalSignature  = 1 << (0),
    NonRepudiation    = 1 << (1),
    KeyEncipherment   = 1 << (2),
    DataEncipherment  = 1 << (3),
    KeyAgreement      = 1 << (4),
    KeyCertSign       = 1 << (5),
    CrlSign           = 1 << (6),
    EncipherOnly      = 1 << (7),
    DecipherOnly      = 1 << (8),
}

W tym przykładzie użyto wartości KeyUsage NamedBitList z RFC 3280 (4.2.1.3), wyliczenie przykładowe używa wartości innych niż System.Security.Cryptography.X509Certificates.X509KeyUsageFlags.

Dotyczy