Share via


AsnReader.ReadNamedBitListValue Methode

Definition

Überlädt

ReadNamedBitListValue(Type, Nullable<Asn1Tag>)

Liest den nächsten Wert als NamedBitList mit einem angegebenen Tag und konvertiert ihn in den [FlagsAttribute]-Enumerationswert, der von flagsEnumType angegeben ist.

ReadNamedBitListValue<TFlagsEnum>(Nullable<Asn1Tag>)

Liest den nächsten Wert als NamedBitList mit einem angegebenen Tag und konvertiert ihn in den [FlagsAttribute]-Enumerationswert, der von TFlagsEnum angegeben ist.

ReadNamedBitListValue(Type, Nullable<Asn1Tag>)

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

Liest den nächsten Wert als NamedBitList mit einem angegebenen Tag und konvertiert ihn in den [FlagsAttribute]-Enumerationswert, der von flagsEnumType angegeben ist.

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

Parameter

flagsEnumType
Type

Typobjekt, das den Zieltyp darstellt.

expectedTag
Nullable<Asn1Tag>

Das Tag, auf das vor dem Lesen überprüft werden soll.

Gibt zurück

Der in ein flagsEnumType-Element konvertierte NamedBitList-Wert.

Ausnahmen

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>(Nullable<Asn1Tag>)

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

Liest den nächsten Wert als NamedBitList mit einem angegebenen Tag und konvertiert ihn in den [FlagsAttribute]-Enumerationswert, der von TFlagsEnum angegeben ist.

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

Typparameter

TFlagsEnum

Zielumenumentyp.

Parameter

expectedTag
Nullable<Asn1Tag>

Das Tag, auf das vor dem Lesen überprüft werden soll.

Gibt zurück

TFlagsEnum

Der in ein TFlagsEnum-Element konvertierte NamedBitList-Wert.

Ausnahmen

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: