AsnReader.ReadNamedBitListValue Méthode

Définition

Surcharges

ReadNamedBitListValue(Type, Nullable<Asn1Tag>)

Lit la valeur suivante comme une valeur NamedBitList avec une balise spécifiée, en la convertissant en l’enum [FlagsAttribute] spécifiée par flagsEnumType.

ReadNamedBitListValue<TFlagsEnum>(Nullable<Asn1Tag>)

Lit la valeur suivante comme une valeur NamedBitList avec une balise spécifiée, en la convertissant en l’enum [FlagsAttribute] spécifiée par TFlagsEnum.

ReadNamedBitListValue(Type, Nullable<Asn1Tag>)

Source:
AsnDecoder.NamedBitList.cs
Source:
AsnDecoder.NamedBitList.cs
Source:
AsnDecoder.NamedBitList.cs

Lit la valeur suivante comme une valeur NamedBitList avec une balise spécifiée, en la convertissant en l’enum [FlagsAttribute] spécifiée par 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

Paramètres

flagsEnumType
Type

Objet Type représentant le type de destination.

expectedTag
Nullable<Asn1Tag>

Balise à case activée avant la lecture.

Retours

Valeur NamedBitList convertie en flagsEnumType.

Exceptions

La valeur suivante n’a pas la balise correcte.

-ou-

L’encodage de longueur n’est pas valide selon les règles d’encodage actuelles.

-ou-

Le contenu n’est pas valide selon les règles d’encodage actuelles.

-ou-

La valeur encodée est trop grande pour tenir dans une flagsEnumType valeur.

flagsEnumType n’est pas un type d’enum.

-ou-

flagsEnumType n’a pas été déclaré avec FlagsAttribute

-ou-

expectedTag.TagClass est Universal, mais expectedTag.TagValue n’est pas correct pour la méthode .

flagsEnumType est null

S’applique à

ReadNamedBitListValue<TFlagsEnum>(Nullable<Asn1Tag>)

Source:
AsnDecoder.NamedBitList.cs
Source:
AsnDecoder.NamedBitList.cs
Source:
AsnDecoder.NamedBitList.cs

Lit la valeur suivante comme une valeur NamedBitList avec une balise spécifiée, en la convertissant en l’enum [FlagsAttribute] spécifiée par 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

Paramètres de type

TFlagsEnum

Type d’énumération de destination.

Paramètres

expectedTag
Nullable<Asn1Tag>

Balise à case activée avant la lecture.

Retours

TFlagsEnum

Valeur NamedBitList convertie en TFlagsEnum.

Exceptions

La valeur suivante n’a pas la balise correcte.

-ou-

L’encodage de longueur n’est pas valide selon les règles d’encodage actuelles.

-ou-

Le contenu n’est pas valide selon les règles d’encodage actuelles.

-ou-

La valeur encodée est trop grande pour tenir dans une TFlagsEnum valeur.

TFlagsEnum n’est pas un type d’enum.

-ou-

TFlagsEnum n’a pas été déclaré avec FlagsAttribute

-ou-

expectedTag.TagClass est Universal, mais expectedTag.TagValue n’est pas correct pour la méthode .

Remarques

L’alignement de bits effectué par cette méthode consiste à interpréter le bit le plus significatif dans le premier octet de la valeur comme le bit le moins significatif dans TFlagsEnum, les bits augmentant en valeur jusqu’au bit le moins significatif du premier octet, en procédant avec le bit le plus significatif du deuxième octet, et ainsi de suite. Dans ce schéma, la déclaration de type ASN.1 et l’énumération C# suivantes peuvent être utilisées ensemble :

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),
}

Alors que l’exemple utilise ici keyUsage NamedBitList de RFC 3280 (4.2.1.3), l’exemple d’énumération utilise des valeurs qui sont différentes de X509KeyUsageFlags.

S’applique à