Sdílet prostřednictvím


AsnReader.ReadNamedBitListValue Metoda

Definice

Přetížení

ReadNamedBitListValue(Type, Nullable<Asn1Tag>)

Načte další hodnotu jako NamedBitList se zadanou značkou a převede ji na výčet [FlagsAttribute] určený parametrem flagsEnumType.

ReadNamedBitListValue<TFlagsEnum>(Nullable<Asn1Tag>)

Načte další hodnotu jako NamedBitList se zadanou značkou a převede ji na výčet [FlagsAttribute] určený parametrem TFlagsEnum.

ReadNamedBitListValue(Type, Nullable<Asn1Tag>)

Zdroj:
AsnDecoder.NamedBitList.cs
Zdroj:
AsnDecoder.NamedBitList.cs
Zdroj:
AsnDecoder.NamedBitList.cs

Načte další hodnotu jako NamedBitList se zadanou značkou a převede ji na výčet [FlagsAttribute] určený parametrem 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

Type objekt představující cílový typ.

expectedTag
Nullable<Asn1Tag>

Značka, která se má před čtením zkontrolovat.

Návraty

Hodnota NamedBitList byla převedena na flagsEnumType.

Výjimky

Další hodnota nemá správnou značku.

-nebo-

Kódování délky není platné podle aktuálních pravidel kódování.

-nebo-

Obsah není platný podle aktuálních pravidel kódování.

-nebo-

Zakódovaná hodnota je příliš velká a nevejde se do hodnoty flagsEnumType .

flagsEnumType není typ výčtu.

-nebo-

flagsEnumType nebyl deklarován s FlagsAttribute

-nebo-

expectedTag.TagClass je Universal, ale expectedTaghodnota .TagValue není správná pro metodu .

flagsEnumType je null

Platí pro

ReadNamedBitListValue<TFlagsEnum>(Nullable<Asn1Tag>)

Zdroj:
AsnDecoder.NamedBitList.cs
Zdroj:
AsnDecoder.NamedBitList.cs
Zdroj:
AsnDecoder.NamedBitList.cs

Načte další hodnotu jako NamedBitList se zadanou značkou a převede ji na výčet [FlagsAttribute] určený parametrem 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 výčtu cíle

Parametry

expectedTag
Nullable<Asn1Tag>

Značka, která se má před čtením zkontrolovat.

Návraty

TFlagsEnum

Hodnota NamedBitList byla převedena na TFlagsEnum.

Výjimky

Další hodnota nemá správnou značku.

-nebo-

Kódování délky není platné podle aktuálních pravidel kódování.

-nebo-

Obsah není platný podle aktuálních pravidel kódování.

-nebo-

Zakódovaná hodnota je příliš velká a nevejde se do hodnoty TFlagsEnum .

TFlagsEnum není typ výčtu.

-nebo-

TFlagsEnum nebyl deklarován s FlagsAttribute

-nebo-

expectedTag.TagClass je Universal, ale expectedTaghodnota .TagValue není správná pro metodu .

Poznámky

Bitové zarovnání prováděné touto metodou je interpretovat nejvýznamnější bit v prvním bajtu hodnoty jako nejméně významný bit v TFlagsEnum, přičemž bity se zvyšují v hodnotě až do nejmenšího významného bitu prvního bajtu, pokračování s nejvýznamnějším bitem druhého bajtu atd. V tomto schématu lze společně použít následující deklaraci typu ASN.1 a výčet jazyka 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),
}

Zatímco zde uvedený příklad používá KeyUsage NamedBitList z RFC 3280 (4.2.1.3), příklad výčtu používá hodnoty, které se liší od X509KeyUsageFlags.

Platí pro