AsnDecoder.ReadNamedBitListValue Metodo
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Overload
ReadNamedBitListValue(ReadOnlySpan<Byte>, AsnEncodingRules, Type, Int32, Nullable<Asn1Tag>) |
Legge un valore NamedBitList da |
ReadNamedBitListValue<TFlagsEnum>(ReadOnlySpan<Byte>, AsnEncodingRules, Int32, Nullable<Asn1Tag>) |
Legge un valore NamedBitList da |
ReadNamedBitListValue(ReadOnlySpan<Byte>, AsnEncodingRules, Type, Int32, Nullable<Asn1Tag>)
- Origine:
- AsnDecoder.NamedBitList.cs
- Origine:
- AsnDecoder.NamedBitList.cs
- Origine:
- AsnDecoder.NamedBitList.cs
Legge un valore NamedBitList da source
con un tag specificato in base alle regole di codifica specificate, convertendolo nell'enumerazione di tipo [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 che contiene i dati codificati.
- ruleSet
- AsnEncodingRules
Vincoli di codifica da usare durante l'interpretazione dei dati.
- flagsEnumType
- Type
Oggetto Type che rappresenta il tipo di destinazione.
- bytesConsumed
- Int32
Al termine di questo metodo, il numero totale di byte per il valore codificato. Questo parametro viene trattato come non inizializzato.
Tag da controllare prima della lettura oppure null
per indicare il tag predefinito (Universal 3).
Restituisce
Valore di NamedBitList convertito in un oggetto 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 enumerazione.
-oppure-
flagsEnumType
non è stato dichiarato con FlagsAttribute
-oppure-
expectedTag
.TagClass è , ma expectedTag
.TagValue non è Universalcorretto per il metodo .
flagsEnumType
è null
Si applica a
ReadNamedBitListValue<TFlagsEnum>(ReadOnlySpan<Byte>, AsnEncodingRules, Int32, Nullable<Asn1Tag>)
- Origine:
- AsnDecoder.NamedBitList.cs
- Origine:
- AsnDecoder.NamedBitList.cs
- Origine:
- AsnDecoder.NamedBitList.cs
Legge un valore NamedBitList da source
con un tag specificato in base alle regole di codifica specificate, convertendolo nell'enumerazione di tipo [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 che contiene i dati codificati.
- ruleSet
- AsnEncodingRules
Vincoli di codifica da usare durante l'interpretazione dei dati.
- bytesConsumed
- Int32
Al termine di questo metodo, il numero totale di byte per il valore codificato. Questo parametro viene trattato come non inizializzato.
Tag da controllare prima della lettura oppure null
per indicare il tag predefinito (Universal 3).
Restituisce
Valore di NamedBitList convertito in un oggetto 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 enumerazione.
-oppure-
TFlagsEnum
non è stato dichiarato con FlagsAttribute
-oppure-
expectedTag
.TagClass è , ma expectedTag
.TagValue non è Universalcorretto 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 nel 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# seguenti:
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 nell'esempio seguente viene usato KeyUsage NamedBitList da RFC 3280 (4.2.1.3), l'enumerazione di esempio usa valori diversi da X509KeyUsageFlags.