Sdílet prostřednictvím


AsnDecoder.ReadNamedBitListValue Metoda

Definice

Přetížení

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

Přečte název NamedBitList z se source zadanou značkou v rámci zadaných pravidel kódování a převede ho na výčet [FlagsAttribute] určený parametrem flagsEnumType.

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

Přečte název NamedBitList z se source zadanou značkou v rámci zadaných pravidel kódování a převede ho na výčet [FlagsAttribute] určený parametrem TFlagsEnum.

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

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

Přečte název NamedBitList z se source zadanou značkou v rámci zadaných pravidel kódování a převede ho na výčet [FlagsAttribute] určený parametrem 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>

Vyrovnávací paměť obsahující kódovaná data.

ruleSet
AsnEncodingRules

Omezení kódování, která se mají použít při interpretaci dat.

flagsEnumType
Type

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

bytesConsumed
Int32

Když tato metoda vrátí celkový počet bajtů kódované hodnoty. Tento parametr je považován za neinicializovaný.

expectedTag
Nullable<Asn1Tag>

Značka, která se má zkontrolovat před čtením, nebo null výchozí značka (Universal 3).

Návraty

Hodnota NamedBitList byla převedena na flagsEnumType.

Výjimky

ruleSet není definováno.

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>(ReadOnlySpan<Byte>, AsnEncodingRules, Int32, Nullable<Asn1Tag>)

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

Přečte název NamedBitList z se source zadanou značkou v rámci zadaných pravidel kódování a převede ho na výčet [FlagsAttribute] určený parametrem 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 výčtu cíle

Parametry

source
ReadOnlySpan<Byte>

Vyrovnávací paměť obsahující kódovaná data.

ruleSet
AsnEncodingRules

Omezení kódování, která se mají použít při interpretaci dat.

bytesConsumed
Int32

Když tato metoda vrátí celkový počet bajtů kódované hodnoty. Tento parametr je považován za neinicializovaný.

expectedTag
Nullable<Asn1Tag>

Značka, která se má zkontrolovat před čtením, nebo null výchozí značka (Universal 3).

Návraty

TFlagsEnum

Hodnota NamedBitList byla převedena na TFlagsEnum.

Výjimky

ruleSet není definováno.

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