AsnReader.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(Type, Nullable<Asn1Tag>) |
Lee el siguiente valor como NamedBitList con una etiqueta especificada y lo convierte en la enumeración [FlagsAttribute] especificada por |
ReadNamedBitListValue<TFlagsEnum>(Nullable<Asn1Tag>) |
Lee el siguiente valor como NamedBitList con una etiqueta especificada y lo convierte en la enumeración [FlagsAttribute] especificada por |
ReadNamedBitListValue(Type, Nullable<Asn1Tag>)
- Source:
- AsnDecoder.NamedBitList.cs
- Source:
- AsnDecoder.NamedBitList.cs
- Source:
- AsnDecoder.NamedBitList.cs
Lee el siguiente valor como NamedBitList con una etiqueta especificada y lo convierte en la enumeración [FlagsAttribute] especificada por 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
Parámetros
- flagsEnumType
- Type
Objeto de tipo que representa el tipo de destino.
Devoluciones
El valor de NamedBitList convertido en flagsEnumType
.
Excepciones
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>(Nullable<Asn1Tag>)
- Source:
- AsnDecoder.NamedBitList.cs
- Source:
- AsnDecoder.NamedBitList.cs
- Source:
- AsnDecoder.NamedBitList.cs
Lee el siguiente valor como NamedBitList con una etiqueta especificada y lo convierte en la enumeración [FlagsAttribute] especificada por 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
Parámetros de tipo
- TFlagsEnum
Tipo de enumeración de destino.
Parámetros
Devoluciones
El valor de NamedBitList convertido en TFlagsEnum
.
Excepciones
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, continuar con el bit más significativo del segundo byte, etc. En este esquema, se pueden usar conjuntamente la siguiente declaración de tipo ASN.1 y la enumeración de C#:
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.