Condividi tramite


AsnDecoder.TryReadEncodedValue Metodo

Definizione

Prova a individuare l'intervallo di contenuto per il valore codificato all'inizio del buffer di source usando le regole di codifica specificate.

public:
 static bool TryReadEncodedValue(ReadOnlySpan<System::Byte> source, System::Formats::Asn1::AsnEncodingRules ruleSet, [Runtime::InteropServices::Out] System::Formats::Asn1::Asn1Tag % tag, [Runtime::InteropServices::Out] int % contentOffset, [Runtime::InteropServices::Out] int % contentLength, [Runtime::InteropServices::Out] int % bytesConsumed);
public static bool TryReadEncodedValue (ReadOnlySpan<byte> source, System.Formats.Asn1.AsnEncodingRules ruleSet, out System.Formats.Asn1.Asn1Tag tag, out int contentOffset, out int contentLength, out int bytesConsumed);
static member TryReadEncodedValue : ReadOnlySpan<byte> * System.Formats.Asn1.AsnEncodingRules * Asn1Tag * int * int * int -> bool
Public Shared Function TryReadEncodedValue (source As ReadOnlySpan(Of Byte), ruleSet As AsnEncodingRules, ByRef tag As Asn1Tag, ByRef contentOffset As Integer, ByRef contentLength As Integer, ByRef bytesConsumed As Integer) As Boolean

Parametri

source
ReadOnlySpan<Byte>

Buffer che contiene i dati codificati.

ruleSet
AsnEncodingRules

Vincoli di codifica da usare durante l'interpretazione dei dati.

tag
Asn1Tag

Al termine di questo metodo, il tag che identifica il contenuto. Questo parametro viene trattato come non inizializzato.

contentOffset
Int32

Al termine di questo metodo, l'offset del payload del contenuto rispetto all'inizio di source. Questo parametro viene trattato come non inizializzato.

contentLength
Int32

Al termine di questo metodo, il numero di byte nel payload del contenuto, che può essere 0. Questo parametro viene trattato come non inizializzato.

bytesConsumed
Int32

Al termine di questo metodo, il numero totale di byte per il valore codificato. Questo parametro viene trattato come non inizializzato.

Restituisce

true se source rappresenta una codifica strutturale valida per le regole di codifica specificate; in caso contrario, false.

Eccezioni

ruleSet non è definito.

Commenti

Questo metodo esegue una convalida molto piccola sul contenuto. Se il valore codificato usa una lunghezza definita, il contenuto non viene controllato. Se il valore codificato usa una lunghezza indefinita, il contenuto viene controllato solo in base alle esigenze per determinare la posizione del marcatore finale di contenuto pertinente.

Quando il valore codificato usa una lunghezza indefinita, il bytesConsumed valore sarà maggiore della somma di contentOffset e contentLength per tenere conto del marcatore end-of-contents.

Si applica a