Język

ValueAsnReader.ReadNamedBitListValue Metoda

Definicja

Przeciążenia

Nazwisko Opis
ReadNamedBitListValue(Type, Nullable<Asn1Tag>)

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

ReadNamedBitListValue<TFlagsEnum>(Nullable<Asn1Tag>)

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

ReadNamedBitListValue(Type, Nullable<Asn1Tag>)

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

Odczytuje następną wartość jako nazwanyBitList 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

Typ obiektu reprezentującego typ docelowy.

expectedTag
Nullable<Asn1Tag>

Tag do sprawdzenia przed przeczytaniem.

Zwraca

Wartość NamedBitList przekonwertowana na 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ść 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>(Nullable<Asn1Tag>)

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

Odczytuje następną wartość jako nazwanyBitList 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 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ść 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