AsnDecoder.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(ReadOnlySpan<Byte>, AsnEncodingRules, Type, Int32, Nullable<Asn1Tag>) |
Lit une valeur NamedBitList à partir de |
ReadNamedBitListValue<TFlagsEnum>(ReadOnlySpan<Byte>, AsnEncodingRules, Int32, Nullable<Asn1Tag>) |
Lit une valeur NamedBitList à partir de |
ReadNamedBitListValue(ReadOnlySpan<Byte>, AsnEncodingRules, Type, Int32, Nullable<Asn1Tag>)
- Source:
- AsnDecoder.NamedBitList.cs
- Source:
- AsnDecoder.NamedBitList.cs
- Source:
- AsnDecoder.NamedBitList.cs
Lit une valeur NamedBitList à partir de source
avec une balise spécifiée selon les règles d’encodage spécifiées, en la convertissant en l’enum [FlagsAttribute] spécifiée par 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
Paramètres
- source
- ReadOnlySpan<Byte>
Mémoire tampon contenant les données encodées.
- ruleSet
- AsnEncodingRules
Contraintes d’encodage à utiliser lors de l’interprétation des données.
- flagsEnumType
- Type
Objet type représentant le type de destination.
- bytesConsumed
- Int32
Lorsque cette méthode retourne une valeur, nombre total d’octets pour la valeur encodée. Ce paramètre est traité comme étant non initialisé.
Balise à vérifier avant la lecture, ou null
pour la balise par défaut (Universal 3).
Retours
Valeur NamedBitList convertie en flagsEnumType
.
Exceptions
ruleSet
n’est pas défini.
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>(ReadOnlySpan<Byte>, AsnEncodingRules, Int32, Nullable<Asn1Tag>)
- Source:
- AsnDecoder.NamedBitList.cs
- Source:
- AsnDecoder.NamedBitList.cs
- Source:
- AsnDecoder.NamedBitList.cs
Lit une valeur NamedBitList à partir de source
avec une balise spécifiée selon les règles d’encodage spécifiées, en la convertissant en l’enum [FlagsAttribute] spécifiée par 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
Paramètres de type
- TFlagsEnum
Type d’énumération de destination.
Paramètres
- source
- ReadOnlySpan<Byte>
Mémoire tampon contenant les données encodées.
- ruleSet
- AsnEncodingRules
Contraintes d’encodage à utiliser lors de l’interprétation des données.
- bytesConsumed
- Int32
Lorsque cette méthode retourne une valeur, nombre total d’octets pour la valeur encodée. Ce paramètre est traité comme étant non initialisé.
Balise à vérifier avant la lecture, ou null
pour la balise par défaut (Universal 3).
Retours
Valeur NamedBitList convertie en TFlagsEnum
.
Exceptions
ruleSet
n’est pas défini.
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),
}
Bien 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.