AsnReader.ReadNamedBitListValue Metoda
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Přetížení
ReadNamedBitListValue(Type, Nullable<Asn1Tag>) |
Načte další hodnotu jako NamedBitList se zadanou značkou a převede ji na výčet [FlagsAttribute] určený parametrem |
ReadNamedBitListValue<TFlagsEnum>(Nullable<Asn1Tag>) |
Načte další hodnotu jako NamedBitList se zadanou značkou a převede ji na výčet [FlagsAttribute] určený parametrem |
ReadNamedBitListValue(Type, Nullable<Asn1Tag>)
Načte další hodnotu jako NamedBitList se zadanou značkou a převede ji na výčet [FlagsAttribute] určený parametrem 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
Type objekt představující cílový typ.
Návraty
Hodnota NamedBitList byla převedena na flagsEnumType
.
Výjimky
Další hodnota nemá správnou značku.
-nebo-
Kódování délky není platné podle aktuálních pravidel kódování.
-nebo-
Obsah není platný podle aktuálních pravidel kódování.
-nebo-
Zakódovaná hodnota je příliš velká a nevejde se do hodnoty flagsEnumType
.
flagsEnumType
není typ výčtu.
-nebo-
flagsEnumType
nebyl deklarován s FlagsAttribute
-nebo-
expectedTag
.TagClass je Universal, ale expectedTag
hodnota .TagValue není správná pro metodu .
flagsEnumType
je null
Platí pro
ReadNamedBitListValue<TFlagsEnum>(Nullable<Asn1Tag>)
Načte další hodnotu jako NamedBitList se zadanou značkou a převede ji na výčet [FlagsAttribute] určený parametrem 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 výčtu cíle
Parametry
Návraty
Hodnota NamedBitList byla převedena na TFlagsEnum
.
Výjimky
Další hodnota nemá správnou značku.
-nebo-
Kódování délky není platné podle aktuálních pravidel kódování.
-nebo-
Obsah není platný podle aktuálních pravidel kódování.
-nebo-
Zakódovaná hodnota je příliš velká a nevejde se do hodnoty TFlagsEnum
.
TFlagsEnum
není typ výčtu.
-nebo-
TFlagsEnum
nebyl deklarován s FlagsAttribute
-nebo-
expectedTag
.TagClass je Universal, ale expectedTag
hodnota .TagValue není správná pro metodu .
Poznámky
Bitové zarovnání prováděné touto metodou je interpretovat nejvýznamnější bit v prvním bajtu hodnoty jako nejméně významný bit v TFlagsEnum
, přičemž bity se zvyšují v hodnotě až do nejmenšího významného bitu prvního bajtu, pokračování s nejvýznamnějším bitem druhého bajtu atd. V tomto schématu lze společně použít následující deklaraci typu ASN.1 a výčet jazyka 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),
}
Zatímco zde uvedený příklad používá KeyUsage NamedBitList z RFC 3280 (4.2.1.3), příklad výčtu používá hodnoty, které se liší od X509KeyUsageFlags.