Freigeben über


AsnDecoder.ReadNamedBitListValue Methode

Definition

Überlädt

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

Liest eine NamedBitList aus source mit einem angegebenen Tag gemäß den angegebenen Codierungsregeln und konvertiert diesen in die durch flagsEnumType angegebene [FlagsAttribute]-Enumeration.

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

Liest eine NamedBitList aus source mit einem angegebenen Tag gemäß den angegebenen Codierungsregeln und konvertiert diesen in die durch TFlagsEnum angegebene [FlagsAttribute]-Enumeration.

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

Quelle:
AsnDecoder.NamedBitList.cs
Quelle:
AsnDecoder.NamedBitList.cs
Quelle:
AsnDecoder.NamedBitList.cs

Liest eine NamedBitList aus source mit einem angegebenen Tag gemäß den angegebenen Codierungsregeln und konvertiert diesen in die durch flagsEnumType angegebene [FlagsAttribute]-Enumeration.

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

Parameter

source
ReadOnlySpan<Byte>

Der Puffer, der codierte Daten enthält.

ruleSet
AsnEncodingRules

Die Codierungseinschränkungen, die beim Interpretieren der Daten verwendet werden sollen.

flagsEnumType
Type

Typobjekt, das den Zieltyp darstellt.

bytesConsumed
Int32

Die Rückgabe dieser Methode ist die Gesamtzahl der Bytes für den codierten Wert. Dieser Parameter wird nicht initialisiert behandelt.

expectedTag
Nullable<Asn1Tag>

Das Tag, das vor dem Lesen überprüft werden soll, oder null für das Standardtag (Universell 3).

Gibt zurück

Der in ein flagsEnumType-Element konvertierte NamedBitList-Wert.

Ausnahmen

ruleSet ist nicht definiert.

Der nächste Wert verfügt nicht über das richtige Tag.

Oder

Die Längencodierung ist nach den aktuellen Codierungsregeln ungültig.

Oder

Die Inhalte sind nach den aktuellen Codierungsregeln ungültig.

Oder

Der codierte Wert ist zu groß, um in einen flagsEnumType Wert zu passen.

flagsEnumType ist kein Enumerationstyp.

Oder

flagsEnumType wurde nicht mit deklariert. FlagsAttribute

Oder

expectedTag.TagClass ist Universal, aber expectedTag.TagValue ist für die -Methode nicht richtig.

flagsEnumType ist null.

Gilt für:

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

Quelle:
AsnDecoder.NamedBitList.cs
Quelle:
AsnDecoder.NamedBitList.cs
Quelle:
AsnDecoder.NamedBitList.cs

Liest eine NamedBitList aus source mit einem angegebenen Tag gemäß den angegebenen Codierungsregeln und konvertiert diesen in die durch TFlagsEnum angegebene [FlagsAttribute]-Enumeration.

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

Typparameter

TFlagsEnum

Zielumenumentyp.

Parameter

source
ReadOnlySpan<Byte>

Der Puffer, der codierte Daten enthält.

ruleSet
AsnEncodingRules

Die Codierungseinschränkungen, die beim Interpretieren der Daten verwendet werden sollen.

bytesConsumed
Int32

Die Rückgabe dieser Methode ist die Gesamtzahl der Bytes für den codierten Wert. Dieser Parameter wird nicht initialisiert behandelt.

expectedTag
Nullable<Asn1Tag>

Das Tag, das vor dem Lesen überprüft werden soll, oder null für das Standardtag (Universell 3).

Gibt zurück

TFlagsEnum

Der in ein TFlagsEnum-Element konvertierte NamedBitList-Wert.

Ausnahmen

ruleSet ist nicht definiert.

Der nächste Wert verfügt nicht über das richtige Tag.

Oder

Die Längencodierung ist nach den aktuellen Codierungsregeln ungültig.

Oder

Die Inhalte sind nach den aktuellen Codierungsregeln ungültig.

Oder

Der codierte Wert ist zu groß, um in einen TFlagsEnum Wert zu passen.

TFlagsEnum ist kein Enumerationstyp.

Oder

TFlagsEnum wurde nicht mit deklariert. FlagsAttribute

Oder

expectedTag.TagClass ist Universal, aber expectedTag.TagValue ist für die -Methode nicht richtig.

Hinweise

Die bitausrichtung, die von dieser Methode durchgeführt wird, besteht darin, das wichtigste Bit im ersten Byte des Werts als das am wenigsten signifikante Bit in TFlagsEnumzu interpretieren, wobei bits im Wert bis zum geringsten signifikanten Bit des ersten Byte steigen und mit dem wichtigsten Bit des zweiten Bytes fortfahren usw. In diesem Schema können die folgende ASN.1-Typdeklaration und die C#-Enumeration zusammen verwendet werden:

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ährend das hier gezeigte Beispiel die KeyUsage NamedBitList aus RFC 3280 (4.2.1.3) verwendet, verwendet die Beispielenume Werte, die sich von X509KeyUsageFlagsunterscheiden.

Gilt für: