Lingua

AsnDecoder.ReadNamedBitListValue Metodo

Definizione

Overload

Nome Descrizione
ReadNamedBitListValue(ReadOnlySpan<Byte>, AsnEncodingRules, Type, Int32, Nullable<Asn1Tag>)

Legge un oggetto NamedBitList da source con un tag specificato nelle regole di codifica specificate, convertendolo nell'enumerazione [FlagsAttribute] specificata da flagsEnumType.

ReadNamedBitListValue<TFlagsEnum>(ReadOnlySpan<Byte>, AsnEncodingRules, Int32, Nullable<Asn1Tag>)

Legge un oggetto NamedBitList da source con un tag specificato nelle regole di codifica specificate, convertendolo nell'enumerazione [FlagsAttribute] specificata da TFlagsEnum.

ReadNamedBitListValue(ReadOnlySpan<Byte>, AsnEncodingRules, Type, Int32, Nullable<Asn1Tag>)

Origine:
AsnDecoder.NamedBitList.cs
Origine:
AsnDecoder.NamedBitList.cs
Origine:
AsnDecoder.NamedBitList.cs
Origine:
AsnDecoder.NamedBitList.cs
Origine:
AsnDecoder.NamedBitList.cs
Origine:
AsnDecoder.NamedBitList.cs
Origine:
AsnDecoder.NamedBitList.cs
Origine:
AsnDecoder.NamedBitList.cs

Legge un oggetto NamedBitList da source con un tag specificato nelle regole di codifica specificate, convertendolo nell'enumerazione [FlagsAttribute] specificata da 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

Parametri

source
ReadOnlySpan<Byte>

Buffer contenente dati codificati.

ruleSet
AsnEncodingRules

Vincoli di codifica da usare per interpretare i dati.

flagsEnumType
Type

Oggetto type che rappresenta il tipo di destinazione.

bytesConsumed
Int32

Quando termina, questo metodo restituisce il numero totale di byte per il valore codificato. Questo parametro viene considerato non inizializzato.

expectedTag
Nullable<Asn1Tag>

Tag da verificare prima della lettura o null del tag predefinito (Universal 3).

Valori restituiti

Valore NamedBitList convertito in .flagsEnumType

Eccezioni

ruleSet non è definito.

Il valore successivo non ha il tag corretto.

oppure

La codifica della lunghezza non è valida nelle regole di codifica correnti.

oppure

Il contenuto non è valido nelle regole di codifica correnti.

oppure

Il valore codificato è troppo grande per adattarsi a un flagsEnumType valore.

flagsEnumType non è un tipo di enumerazione.

oppure

flagsEnumType non è stato dichiarato con FlagsAttribute

oppure

expectedTag.TagClass è Universal, ma expectedTag.TagValue non è corretto per il metodo .

flagsEnumType è null

Vedi anche

Si applica a

ReadNamedBitListValue<TFlagsEnum>(ReadOnlySpan<Byte>, AsnEncodingRules, Int32, Nullable<Asn1Tag>)

Origine:
AsnDecoder.NamedBitList.cs
Origine:
AsnDecoder.NamedBitList.cs
Origine:
AsnDecoder.NamedBitList.cs
Origine:
AsnDecoder.NamedBitList.cs
Origine:
AsnDecoder.NamedBitList.cs
Origine:
AsnDecoder.NamedBitList.cs
Origine:
AsnDecoder.NamedBitList.cs
Origine:
AsnDecoder.NamedBitList.cs

Legge un oggetto NamedBitList da source con un tag specificato nelle regole di codifica specificate, convertendolo nell'enumerazione [FlagsAttribute] specificata da 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

Parametri di tipo

TFlagsEnum

Tipo di enumerazione di destinazione.

Parametri

source
ReadOnlySpan<Byte>

Buffer contenente dati codificati.

ruleSet
AsnEncodingRules

Vincoli di codifica da usare per interpretare i dati.

bytesConsumed
Int32

Quando termina, questo metodo restituisce il numero totale di byte per il valore codificato. Questo parametro viene considerato non inizializzato.

expectedTag
Nullable<Asn1Tag>

Tag da verificare prima della lettura o null del tag predefinito (Universal 3).

Valori restituiti

TFlagsEnum

Valore NamedBitList convertito in .TFlagsEnum

Eccezioni

ruleSet non è definito.

Il valore successivo non ha il tag corretto.

oppure

La codifica della lunghezza non è valida nelle regole di codifica correnti.

oppure

Il contenuto non è valido nelle regole di codifica correnti.

oppure

Il valore codificato è troppo grande per adattarsi a un TFlagsEnum valore.

TFlagsEnum non è un tipo di enumerazione.

oppure

TFlagsEnum non è stato dichiarato con FlagsAttribute

oppure

expectedTag.TagClass è Universal, ma expectedTag.TagValue non è corretto per il metodo .

Commenti

L'allineamento dei bit eseguito da questo metodo consiste nell'interpretare il bit più significativo nel primo byte del valore come bit meno significativo in TFlagsEnum, con bit che aumentano in valore fino al bit meno significativo del primo byte, procedendo con il bit più significativo del secondo byte e così via. In questo schema è possibile usare insieme la dichiarazione di tipo ASN.1 seguente e l'enumerazione 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),
}

Mentre l'esempio qui usa KeyUsage NamedBitList da RFC 3280 (4.2.1.3), l'enumerazione di esempio usa valori diversi da System.Security.Cryptography.X509Certificates.X509KeyUsageFlags.

Si applica a