Compartir a través de


AsnReader.ReadNamedBitListValue Método

Definición

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 flagsEnumType.

ReadNamedBitListValue<TFlagsEnum>(Nullable<Asn1Tag>)

Lee el siguiente valor como NamedBitList con una etiqueta especificada y lo convierte en la enumeración [FlagsAttribute] especificada por TFlagsEnum.

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.

expectedTag
Nullable<Asn1Tag>

La etiqueta que se va a comprobar antes de leer.

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

expectedTag
Nullable<Asn1Tag>

La etiqueta que se va a comprobar antes de leer.

Devoluciones

TFlagsEnum

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.

Se aplica a