AsnDecoder.ReadNamedBitListValue Método
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Sobrecargas
ReadNamedBitListValue(ReadOnlySpan<Byte>, AsnEncodingRules, Type, Int32, Nullable<Asn1Tag>) |
Lee un valor NamedBitList de |
ReadNamedBitListValue<TFlagsEnum>(ReadOnlySpan<Byte>, AsnEncodingRules, Int32, Nullable<Asn1Tag>) |
Lee un valor NamedBitList de |
ReadNamedBitListValue(ReadOnlySpan<Byte>, AsnEncodingRules, Type, Int32, Nullable<Asn1Tag>)
- Source:
- AsnDecoder.NamedBitList.cs
- Source:
- AsnDecoder.NamedBitList.cs
- Source:
- AsnDecoder.NamedBitList.cs
Lee un valor NamedBitList de source
con una etiqueta especificada en las reglas de codificación especificadas y lo convierte en la enumeración [FlagsAttribute] especificada por 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
Parámetros
- source
- ReadOnlySpan<Byte>
El búfer que contiene los datos codificados.
- ruleSet
- AsnEncodingRules
Restricciones de codificación que se van a usar al interpretar los datos.
- flagsEnumType
- Type
Objeto de tipo que representa el tipo de destino.
- bytesConsumed
- Int32
Cuando este método vuelve, el número total de bytes para el valor codificado. Este parámetro se trata como sin inicializar.
La etiqueta que se va a comprobar antes de leer, o null
para la etiqueta predeterminada (Universal 3).
Devoluciones
El valor de NamedBitList convertido en flagsEnumType
.
Excepciones
ruleSet
no está definido.
El siguiente valor no tiene la etiqueta correcta.
O bien
La codificación de longitud no es válida en las reglas de codificación actuales.
O bien
El contenido no es válido en las reglas de codificación actuales.
O bien
El valor codificado es demasiado grande para caber en un flagsEnumType
valor.
flagsEnumType
no es un tipo de enumeración.
O bien
flagsEnumType
no se declaró con FlagsAttribute
O bien
expectedTag
.TagClass es Universal, pero expectedTag
.TagValue no es correcto para el método .
flagsEnumType
es null
.
Se aplica a
ReadNamedBitListValue<TFlagsEnum>(ReadOnlySpan<Byte>, AsnEncodingRules, Int32, Nullable<Asn1Tag>)
- Source:
- AsnDecoder.NamedBitList.cs
- Source:
- AsnDecoder.NamedBitList.cs
- Source:
- AsnDecoder.NamedBitList.cs
Lee un valor NamedBitList de source
con una etiqueta especificada en las reglas de codificación especificadas y lo convierte en la enumeración [FlagsAttribute] especificada por 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
Parámetros de tipo
- TFlagsEnum
Tipo de enumeración de destino.
Parámetros
- source
- ReadOnlySpan<Byte>
El búfer que contiene los datos codificados.
- ruleSet
- AsnEncodingRules
Restricciones de codificación que se van a usar al interpretar los datos.
- bytesConsumed
- Int32
Cuando este método vuelve, el número total de bytes para el valor codificado. Este parámetro se trata como sin inicializar.
La etiqueta que se va a comprobar antes de leer, o null
para la etiqueta predeterminada (Universal 3).
Devoluciones
El valor de NamedBitList convertido en TFlagsEnum
.
Excepciones
ruleSet
no está definido.
El siguiente valor no tiene la etiqueta correcta.
O bien
La codificación de longitud no es válida en las reglas de codificación actuales.
O bien
El contenido no es válido en las reglas de codificación actuales.
O bien
El valor codificado es demasiado grande para caber en un TFlagsEnum
valor.
TFlagsEnum
no es un tipo de enumeración.
O bien
TFlagsEnum
no se declaró con FlagsAttribute
O bien
expectedTag
.TagClass es Universal, pero expectedTag
.TagValue no es correcto para el método .
Comentarios
La alineación de bits realizada por este método es interpretar el bit más significativo del primer byte del valor como el bit menos significativo en TFlagsEnum
, con bits que aumentan en valor hasta el bit menos significativo del primer byte, procediendo con el bit más significativo del segundo byte, etc. En este esquema, la siguiente declaración de tipo ASN.1 y la enumeración de C# se pueden usar conjuntamente:
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),
}
Aunque en el ejemplo siguiente se usa KeyUsage NamedBitList de RFC 3280 (4.2.1.3), la enumeración de ejemplo usa valores que son diferentes de X509KeyUsageFlags.