Bagikan melalui


AsnReader.ReadNamedBitListValue Metode

Definisi

Overload

ReadNamedBitListValue(Type, Nullable<Asn1Tag>)

Membaca nilai berikutnya sebagai NamedBitList dengan tag tertentu, mengonversinya menjadi enum [FlagsAttribute] yang ditentukan oleh flagsEnumType.

ReadNamedBitListValue<TFlagsEnum>(Nullable<Asn1Tag>)

Membaca nilai berikutnya sebagai NamedBitList dengan tag tertentu, mengonversinya menjadi enum [FlagsAttribute] yang ditentukan oleh TFlagsEnum.

ReadNamedBitListValue(Type, Nullable<Asn1Tag>)

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

Membaca nilai berikutnya sebagai NamedBitList dengan tag tertentu, mengonversinya menjadi enum [FlagsAttribute] yang ditentukan oleh flagsEnumType.

public Enum ReadNamedBitListValue (Type flagsEnumType, System.Formats.Asn1.Asn1Tag? expectedTag = default);
member this.ReadNamedBitListValue : Type * Nullable<System.Formats.Asn1.Asn1Tag> -> Enum
Public Function ReadNamedBitListValue (flagsEnumType As Type, Optional expectedTag As Nullable(Of Asn1Tag) = Nothing) As Enum

Parameter

flagsEnumType
Type

Ketik objek yang mewakili jenis tujuan.

expectedTag
Nullable<Asn1Tag>

Tag yang akan diperiksa sebelum dibaca.

Mengembalikan

Nilai NamedBitList dikonversi menjadi flagsEnumType.

Pengecualian

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 dideklarasikan dengan FlagsAttribute

-atau-

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

flagsEnumType is null

Berlaku untuk

ReadNamedBitListValue<TFlagsEnum>(Nullable<Asn1Tag>)

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

Membaca nilai berikutnya sebagai NamedBitList dengan tag tertentu, mengonversinya menjadi enum [FlagsAttribute] yang ditentukan oleh TFlagsEnum.

public TFlagsEnum ReadNamedBitListValue<TFlagsEnum> (System.Formats.Asn1.Asn1Tag? expectedTag = default) where TFlagsEnum : Enum;
member this.ReadNamedBitListValue : Nullable<System.Formats.Asn1.Asn1Tag> -> 'FlagsEnum (requires 'FlagsEnum :> Enum)
Public Function ReadNamedBitListValue(Of TFlagsEnum As Enum) (Optional expectedTag As Nullable(Of Asn1Tag) = Nothing) As TFlagsEnum

Jenis parameter

TFlagsEnum

Jenis enum tujuan.

Parameter

expectedTag
Nullable<Asn1Tag>

Tag yang akan diperiksa sebelum dibaca.

Mengembalikan

TFlagsEnum

Nilai NamedBitList dikonversi menjadi TFlagsEnum.

Pengecualian

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 dideklarasikan dengan FlagsAttribute

-atau-

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

Keterangan

Perataan bit yang dilakukan oleh metode ini adalah untuk menginterpretasikan 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), enum contoh menggunakan nilai yang berbeda dari X509KeyUsageFlags.

Berlaku untuk