Udostępnij za pośrednictwem


AsnReader.ReadNamedBitListValue Metoda

Definicja

Przeciążenia

ReadNamedBitListValue(Type, Nullable<Asn1Tag>)

Odczytuje następną wartość jako nazwanąlistę z określonym tagiem, konwertując ją na wyliczenie [FlagsAttribute] określone przez flagsEnumType.

ReadNamedBitListValue<TFlagsEnum>(Nullable<Asn1Tag>)

Odczytuje następną wartość jako nazwanąlistę z określonym tagiem, konwertując ją na wyliczenie [FlagsAttribute] określone przez TFlagsEnum.

ReadNamedBitListValue(Type, Nullable<Asn1Tag>)

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

Odczytuje następną wartość jako nazwanąlistę z określonym tagiem, konwertując ją na wyliczenie [FlagsAttribute] określone przez flagsEnumType.

public Enum ReadNamedBitListValue (Type flagsEnumType, System.Formats.Asn1.Asn1Tag? expectedTag = default);
member this.ReadNamedBitListValue : Type * Nullable<System.Formats.Asn1.Asn1Tag> -> Enum
Public Function ReadNamedBitListValue (flagsEnumType As Type, Optional expectedTag As Nullable(Of Asn1Tag) = Nothing) As Enum

Parametry

flagsEnumType
Type

Wpisz obiekt reprezentujący typ docelowy.

expectedTag
Nullable<Asn1Tag>

Tag do sprawdzenia przed przeczytaniem.

Zwraca

Wartość NamedBitList przekonwertowana na wartość flagsEnumType.

Wyjątki

Następna wartość nie ma poprawnego tagu.

-lub-

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

-lub-

Zawartość jest nieprawidłowa w ramach bieżących reguł kodowania.

-lub-

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

flagsEnumType nie jest typem wyliczenia.

-lub-

flagsEnumType nie został zadeklarowany z FlagsAttribute

-lub-

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

flagsEnumType to null

Dotyczy

ReadNamedBitListValue<TFlagsEnum>(Nullable<Asn1Tag>)

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

Odczytuje następną wartość jako nazwanąlistę z określonym tagiem, konwertując ją na wyliczenie [FlagsAttribute] określone przez TFlagsEnum.

public TFlagsEnum ReadNamedBitListValue<TFlagsEnum> (System.Formats.Asn1.Asn1Tag? expectedTag = default) where TFlagsEnum : Enum;
member this.ReadNamedBitListValue : Nullable<System.Formats.Asn1.Asn1Tag> -> 'FlagsEnum (requires 'FlagsEnum :> Enum)
Public Function ReadNamedBitListValue(Of TFlagsEnum As Enum) (Optional expectedTag As Nullable(Of Asn1Tag) = Nothing) As TFlagsEnum

Parametry typu

TFlagsEnum

Typ wyliczenia docelowego.

Parametry

expectedTag
Nullable<Asn1Tag>

Tag do sprawdzenia przed przeczytaniem.

Zwraca

TFlagsEnum

Wartość NamedBitList przekonwertowana na wartość TFlagsEnum.

Wyjątki

Następna wartość nie ma poprawnego tagu.

-lub-

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

-lub-

Zawartość jest nieprawidłowa w ramach bieżących reguł kodowania.

-lub-

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

TFlagsEnum nie jest typem wyliczenia.

-lub-

TFlagsEnum nie został zadeklarowany z FlagsAttribute

-lub-

expectedTag.TagClass jest 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 , z bitami zwiększającymi 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żyć 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 klasy KeyUsage NamedBitList z RFC 3280 (4.2.1.3), wyliczenie przykładowe używa wartości, które różnią się od X509KeyUsageFlags.

Dotyczy