Bagikan melalui


AsnDecoder.ReadNamedBitListValue Metode

Definisi

Overload

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

Membaca NamedBitList dari source dengan tag tertentu di bawah aturan pengodean yang ditentukan, mengonversinya menjadi enum [FlagsAttribute] yang ditentukan oleh flagsEnumType.

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

Membaca NamedBitList dari source dengan tag tertentu di bawah aturan pengodean yang ditentukan, mengonversinya menjadi enum [FlagsAttribute] yang ditentukan oleh TFlagsEnum.

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

Sumber:
AsnDecoder.NamedBitList.cs
Sumber:
AsnDecoder.NamedBitList.cs
Sumber:
AsnDecoder.NamedBitList.cs

Membaca NamedBitList dari source dengan tag tertentu di bawah aturan pengodean yang ditentukan, mengonversinya menjadi enum [FlagsAttribute] yang ditentukan oleh 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

Parameter

source
ReadOnlySpan<Byte>

Buffer yang berisi data yang dikodekan.

ruleSet
AsnEncodingRules

Batasan pengodean yang akan digunakan saat menginterpretasikan data.

flagsEnumType
Type

Ketik objek yang mewakili jenis tujuan.

bytesConsumed
Int32

Ketika metode ini kembali, jumlah total byte untuk nilai yang dikodekan. Parameter ini diperlakukan sebagai tidak diinisialisasi.

expectedTag
Nullable<Asn1Tag>

Tag yang akan diperiksa sebelum membaca, atau null untuk tag default (Universal 3).

Mengembalikan

Nilai NamedBitList dikonversi menjadi flagsEnumType.

Pengecualian

ruleSet tidak didefinisikan.

Nilai berikutnya tidak memiliki tag yang benar.

-atau-

Pengodean panjang tidak valid di bawah aturan pengodean saat ini.

-atau-

Isi tidak valid di bawah aturan pengodean saat ini.

-atau-

Nilai yang dikodekan terlalu besar agar pas dalam nilai flagsEnumType .

flagsEnumType bukan jenis enum.

-atau-

flagsEnumType tidak dinyatakan dengan FlagsAttribute

-atau-

expectedTag.TagClass adalah Universal, tetapi expectedTag.TagValue tidak benar untuk metode .

flagsEnumType is null

Berlaku untuk

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

Sumber:
AsnDecoder.NamedBitList.cs
Sumber:
AsnDecoder.NamedBitList.cs
Sumber:
AsnDecoder.NamedBitList.cs

Membaca NamedBitList dari source dengan tag tertentu di bawah aturan pengodean yang ditentukan, mengonversinya menjadi enum [FlagsAttribute] yang ditentukan oleh 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

Jenis parameter

TFlagsEnum

Jenis enum tujuan.

Parameter

source
ReadOnlySpan<Byte>

Buffer yang berisi data yang dikodekan.

ruleSet
AsnEncodingRules

Batasan pengodean yang akan digunakan saat menginterpretasikan data.

bytesConsumed
Int32

Ketika metode ini kembali, jumlah total byte untuk nilai yang dikodekan. Parameter ini diperlakukan sebagai tidak diinisialisasi.

expectedTag
Nullable<Asn1Tag>

Tag yang akan diperiksa sebelum membaca, atau null untuk tag default (Universal 3).

Mengembalikan

TFlagsEnum

Nilai NamedBitList dikonversi menjadi TFlagsEnum.

Pengecualian

ruleSet tidak didefinisikan.

Nilai berikutnya tidak memiliki tag yang benar.

-atau-

Pengodean panjang tidak valid di bawah aturan pengodean saat ini.

-atau-

Isi tidak valid di bawah aturan pengodean saat ini.

-atau-

Nilai yang dikodekan terlalu besar agar pas dalam nilai TFlagsEnum .

TFlagsEnum bukan jenis enum.

-atau-

TFlagsEnum tidak dinyatakan dengan FlagsAttribute

-atau-

expectedTag.TagClass adalah Universal, tetapi expectedTag.TagValue tidak benar untuk metode .

Keterangan

Penyelarasan bit yang dilakukan oleh metode ini adalah untuk menafsirkan bit yang paling signifikan dalam byte pertama dari nilai sebagai bit yang paling tidak signifikan dalam TFlagsEnum, dengan bit meningkat nilainya sampai bit yang paling tidak signifikan dari byte pertama, melanjutkan dengan bit yang paling signifikan dari byte kedua, dan sebagainya. Di bawah skema ini, deklarasi jenis ASN.1 berikut dan enumerasi C# dapat digunakan bersama-sama:

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),
}

Sementara contoh di sini menggunakan KeyUsage NamedBitList dari RFC 3280 (4.2.1.3), contoh enum menggunakan nilai yang berbeda dari X509KeyUsageFlags.

Berlaku untuk