AsnReader.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(Type, Nullable<Asn1Tag>) |
Membaca nilai berikutnya sebagai NamedBitList dengan tag tertentu, mengonversinya menjadi enum [FlagsAttribute] yang ditentukan oleh |
ReadNamedBitListValue<TFlagsEnum>(Nullable<Asn1Tag>) |
Membaca nilai berikutnya sebagai NamedBitList dengan tag tertentu, mengonversinya menjadi enum [FlagsAttribute] yang ditentukan oleh |
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.
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
Mengembalikan
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.