AsnReader.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(Type, Nullable<Asn1Tag>) |
Odczytuje następną wartość jako nazwanąlistę z określonym tagiem, konwertując ją na wyliczenie [FlagsAttribute] określone przez |
ReadNamedBitListValue<TFlagsEnum>(Nullable<Asn1Tag>) |
Odczytuje następną wartość jako nazwanąlistę z określonym tagiem, konwertując ją na wyliczenie [FlagsAttribute] określone przez |
ReadNamedBitListValue(Type, Nullable<Asn1Tag>)
- Źródło:
- AsnDecoder.NamedBitList.cs
- Źródło:
- AsnDecoder.NamedBitList.cs
- Źródło:
- AsnDecoder.NamedBitList.cs
Odczytuje następną wartość jako nazwanąlistę z określonym tagiem, konwertując ją na wyliczenie [FlagsAttribute] określone przez 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
Parametry
- flagsEnumType
- Type
Wpisz obiekt reprezentujący typ docelowy.
Zwraca
Wartość NamedBitList przekonwertowana na wartość flagsEnumType
.
Wyjątki
Następna wartość nie ma poprawnego tagu.
-lub-
Kodowanie długości jest nieprawidłowe w ramach bieżących reguł kodowania.
-lub-
Zawartość jest nieprawidłowa w ramach bieżących reguł 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 z FlagsAttribute
-lub-
expectedTag
.TagClass jest Universal, ale expectedTag
TagValue . nie jest poprawny dla metody .
flagsEnumType
to null
Dotyczy
ReadNamedBitListValue<TFlagsEnum>(Nullable<Asn1Tag>)
- Źródło:
- AsnDecoder.NamedBitList.cs
- Źródło:
- AsnDecoder.NamedBitList.cs
- Źródło:
- AsnDecoder.NamedBitList.cs
Odczytuje następną wartość jako nazwanąlistę z określonym tagiem, konwertując ją na wyliczenie [FlagsAttribute] określone przez 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
Parametry typu
- TFlagsEnum
Typ wyliczenia docelowego.
Parametry
Zwraca
Wartość NamedBitList przekonwertowana na wartość TFlagsEnum
.
Wyjątki
Następna wartość nie ma poprawnego tagu.
-lub-
Kodowanie długości jest nieprawidłowe w ramach bieżących reguł kodowania.
-lub-
Zawartość jest nieprawidłowa w ramach bieżących reguł 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 z FlagsAttribute
-lub-
expectedTag
.TagClass jest Universal, ale expectedTag
TagValue . nie jest poprawny 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 , z bitami zwiększającymi 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żyć 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 klasy KeyUsage NamedBitList z RFC 3280 (4.2.1.3), wyliczenie przykładowe używa wartości, które różnią się od X509KeyUsageFlags.