AsnDecoder.ReadNamedBitListValue Metoda
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Przeciążenia
ReadNamedBitListValue(ReadOnlySpan<Byte>, AsnEncodingRules, Type, Int32, Nullable<Asn1Tag>) |
Odczytuje element NamedBitList z |
ReadNamedBitListValue<TFlagsEnum>(ReadOnlySpan<Byte>, AsnEncodingRules, Int32, Nullable<Asn1Tag>) |
Odczytuje element NamedBitList z |
ReadNamedBitListValue(ReadOnlySpan<Byte>, AsnEncodingRules, Type, Int32, Nullable<Asn1Tag>)
- Źródło:
- AsnDecoder.NamedBitList.cs
- Źródło:
- AsnDecoder.NamedBitList.cs
- Źródło:
- AsnDecoder.NamedBitList.cs
Odczytuje element NamedBitList z source
z określonym tagiem zgodnie z określonymi regułami kodowania, konwertując go na wyliczenie [FlagsAttribute] określone przez 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
Parametry
- source
- ReadOnlySpan<Byte>
Bufor zawierający zakodowane dane.
- ruleSet
- AsnEncodingRules
Ograniczenia kodowania, które mają być używane podczas interpretowania danych.
- flagsEnumType
- Type
Typ obiektu reprezentującego typ docelowy.
- bytesConsumed
- Int32
Gdy ta metoda zwraca, łączna liczba bajtów dla zakodowanej wartości. Ten parametr jest traktowany jako niezainicjowany.
Tag do sprawdzenia przed odczytaniem lub null
tagu domyślnego (Universal 3).
Zwraca
Wartość NamedBitList przekonwertowana na flagsEnumType
wartość .
Wyjątki
ruleSet
nie jest zdefiniowany.
Następna wartość nie ma poprawnego tagu.
-lub-
Kodowanie długości jest nieprawidłowe w ramach bieżących reguł kodowania.
-lub-
Zawartość nie jest prawidłowa zgodnie z bieżącymi regułami kodowania.
-lub-
Zakodowana wartość jest zbyt duża, aby zmieścić się w flagsEnumType
wartości.
flagsEnumType
nie jest typem wyliczenia.
-lub-
flagsEnumType
nie został zadeklarowany za pomocą polecenia FlagsAttribute
-lub-
expectedTag
.TagClass to Universal, ale expectedTag
TagValue . nie jest poprawna dla metody .
flagsEnumType
to null
Dotyczy
ReadNamedBitListValue<TFlagsEnum>(ReadOnlySpan<Byte>, AsnEncodingRules, Int32, Nullable<Asn1Tag>)
- Źródło:
- AsnDecoder.NamedBitList.cs
- Źródło:
- AsnDecoder.NamedBitList.cs
- Źródło:
- AsnDecoder.NamedBitList.cs
Odczytuje element NamedBitList z source
z określonym tagiem zgodnie z określonymi regułami kodowania, konwertując go na wyliczenie [FlagsAttribute] określone przez 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
Parametry typu
- TFlagsEnum
Typ wyliczenia docelowego.
Parametry
- source
- ReadOnlySpan<Byte>
Bufor zawierający zakodowane dane.
- ruleSet
- AsnEncodingRules
Ograniczenia kodowania, które mają być używane podczas interpretowania danych.
- bytesConsumed
- Int32
Gdy ta metoda zwraca, łączna liczba bajtów dla zakodowanej wartości. Ten parametr jest traktowany jako niezainicjowany.
Tag do sprawdzenia przed odczytaniem lub null
tagu domyślnego (Universal 3).
Zwraca
Wartość NamedBitList przekonwertowana na TFlagsEnum
wartość .
Wyjątki
ruleSet
nie jest zdefiniowany.
Następna wartość nie ma poprawnego tagu.
-lub-
Kodowanie długości jest nieprawidłowe w ramach bieżących reguł kodowania.
-lub-
Zawartość nie jest prawidłowa zgodnie z bieżącymi regułami kodowania.
-lub-
Zakodowana wartość jest zbyt duża, aby zmieścić się w TFlagsEnum
wartości.
TFlagsEnum
nie jest typem wyliczenia.
-lub-
TFlagsEnum
nie został zadeklarowany za pomocą polecenia FlagsAttribute
-lub-
expectedTag
.TagClass to Universal, ale expectedTag
TagValue . nie jest poprawna dla metody .
Uwagi
Wyrównanie bitów wykonywane przez tę metodę polega na interpretowaniu najbardziej znaczącego bitu w pierwszym bajtzie wartości jako najmniej znaczącego bitu w TFlagsEnum
elemecie , przy czym bity zwiększają wartość do najmniej znaczącego bitu pierwszego bajtu, postępując zgodnie z najbardziej znaczącym bitem drugiego bajtu itd. W ramach tego schematu można używać razem następującej deklaracji typu ASN.1 i wyliczenia języka C#:
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),
}
W tym przykładzie użyto metody KeyUsage NamedBitList z RFC 3280 (4.2.1.3), wyliczenie przykładowe używa wartości innych niż X509KeyUsageFlags.