AsnDecoder.ReadNamedBitListValue Metode
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
Overload
ReadNamedBitListValue(ReadOnlySpan<Byte>, AsnEncodingRules, Type, Int32, Nullable<Asn1Tag>) |
Membaca NamedBitList dari |
ReadNamedBitListValue<TFlagsEnum>(ReadOnlySpan<Byte>, AsnEncodingRules, Int32, Nullable<Asn1Tag>) |
Membaca NamedBitList dari |
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.
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.
Tag yang akan diperiksa sebelum membaca, atau null
untuk tag default (Universal 3).
Mengembalikan
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.