AsnReader.ReadNamedBitListValue Méthode
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
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 |
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 |
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.
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
Retours
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.