AsnDecoder.ReadNamedBitListValue Método
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Sobrecargas
ReadNamedBitListValue(ReadOnlySpan<Byte>, AsnEncodingRules, Type, Int32, Nullable<Asn1Tag>) |
Lê um NamedBitList de |
ReadNamedBitListValue<TFlagsEnum>(ReadOnlySpan<Byte>, AsnEncodingRules, Int32, Nullable<Asn1Tag>) |
Lê um NamedBitList de |
ReadNamedBitListValue(ReadOnlySpan<Byte>, AsnEncodingRules, Type, Int32, Nullable<Asn1Tag>)
- Origem:
- AsnDecoder.NamedBitList.cs
- Origem:
- AsnDecoder.NamedBitList.cs
- Origem:
- AsnDecoder.NamedBitList.cs
Lê um NamedBitList de source
com uma marca especificada de acordo com as regras de codificação determinadas, convertendo-o para a enumeração [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>
Buffer que contém dados codificados.
- ruleSet
- AsnEncodingRules
As restrições de codificação a serem usadas ao interpretar os dados.
- flagsEnumType
- Type
Objeto type que representa o tipo de destino.
- bytesConsumed
- Int32
Quando esse método é retornado, o número total de bytes para o valor codificado. Esse parâmetro é tratado como não inicializado.
A marca a verificar antes da leitura ou null
para a marca padrão (Universal 3).
Retornos
O valor de NamedBitList convertido em flagsEnumType
.
Exceções
ruleSet
não está definido.
O próximo valor não tem a marca correta.
-ou-
A codificação de comprimento não é válida de acordo com as regras de codificação atuais.
-ou-
O conteúdo não é válido de acordo com as regras de codificação atuais.
-ou-
O valor codificado é muito grande para caber em um flagsEnumType
valor.
flagsEnumType
não é um tipo enumerado.
-ou-
flagsEnumType
não foi declarado com FlagsAttribute
-ou-
expectedTag
.TagClass é Universal, mas expectedTag
.TagValue não está correto para o método .
flagsEnumType
é null
Aplica-se a
ReadNamedBitListValue<TFlagsEnum>(ReadOnlySpan<Byte>, AsnEncodingRules, Int32, Nullable<Asn1Tag>)
- Origem:
- AsnDecoder.NamedBitList.cs
- Origem:
- AsnDecoder.NamedBitList.cs
- Origem:
- AsnDecoder.NamedBitList.cs
Lê um NamedBitList de source
com uma marca especificada de acordo com as regras de codificação determinadas, convertendo-o para a enumeração [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 enumeração de destino.
Parâmetros
- source
- ReadOnlySpan<Byte>
Buffer que contém dados codificados.
- ruleSet
- AsnEncodingRules
As restrições de codificação a serem usadas ao interpretar os dados.
- bytesConsumed
- Int32
Quando esse método é retornado, o número total de bytes para o valor codificado. Esse parâmetro é tratado como não inicializado.
A marca a verificar antes da leitura ou null
para a marca padrão (Universal 3).
Retornos
O valor de NamedBitList convertido em TFlagsEnum
.
Exceções
ruleSet
não está definido.
O próximo valor não tem a marca correta.
-ou-
A codificação de comprimento não é válida de acordo com as regras de codificação atuais.
-ou-
O conteúdo não é válido de acordo com as regras de codificação atuais.
-ou-
O valor codificado é muito grande para caber em um TFlagsEnum
valor.
TFlagsEnum
não é um tipo enumerado.
-ou-
TFlagsEnum
não foi declarado com FlagsAttribute
-ou-
expectedTag
.TagClass é Universal, mas expectedTag
.TagValue não está correto para o método .
Comentários
O alinhamento de bits executado por esse método é interpretar o bit mais significativo no primeiro byte do valor como o bit menos significativo em TFlagsEnum
, com bits aumentando em valor até o bit menos significativo do primeiro byte, continuando com o bit mais significativo do segundo byte e assim por diante. Nesse esquema, a seguinte declaração de tipo ASN.1 e a enumeração C# podem ser usadas juntas:
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),
}
Embora o exemplo aqui use o KeyUsage NamedBitList do RFC 3280 (4.2.1.3), a enumeração de exemplo usa valores diferentes de X509KeyUsageFlags.