AsnReader.ReadNamedBitListValue Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Überlädt
| ReadNamedBitListValue(Type, Nullable<Asn1Tag>) |
Liest den nächsten Wert als NamedBitList mit einem angegebenen Tag und konvertiert ihn in den [FlagsAttribute]-Enumerationswert, der von |
| ReadNamedBitListValue<TFlagsEnum>(Nullable<Asn1Tag>) |
Liest den nächsten Wert als NamedBitList mit einem angegebenen Tag und konvertiert ihn in den [FlagsAttribute]-Enumerationswert, der von |
ReadNamedBitListValue(Type, Nullable<Asn1Tag>)
- Quelle:
- AsnDecoder.NamedBitList.cs
- Quelle:
- AsnDecoder.NamedBitList.cs
- Quelle:
- AsnDecoder.NamedBitList.cs
Liest den nächsten Wert als NamedBitList mit einem angegebenen Tag und konvertiert ihn in den [FlagsAttribute]-Enumerationswert, der von flagsEnumType angegeben ist.
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
Typobjekt, das den Zieltyp darstellt.
Gibt zurück
Der in ein flagsEnumType-Element konvertierte NamedBitList-Wert.
Ausnahmen
Der nächste Wert verfügt nicht über das richtige Tag.
Oder
Die Längencodierung ist nach den aktuellen Codierungsregeln ungültig.
Oder
Die Inhalte sind nach den aktuellen Codierungsregeln ungültig.
Oder
Der codierte Wert ist zu groß, um in einen flagsEnumType Wert zu passen.
flagsEnumType ist kein Enumerationstyp.
Oder
flagsEnumType wurde nicht mit deklariert. FlagsAttribute
Oder
expectedTag.TagClass ist Universal, aber expectedTag.TagValue ist für die -Methode nicht richtig.
flagsEnumType ist null.
Gilt für:
ReadNamedBitListValue<TFlagsEnum>(Nullable<Asn1Tag>)
- Quelle:
- AsnDecoder.NamedBitList.cs
- Quelle:
- AsnDecoder.NamedBitList.cs
- Quelle:
- AsnDecoder.NamedBitList.cs
Liest den nächsten Wert als NamedBitList mit einem angegebenen Tag und konvertiert ihn in den [FlagsAttribute]-Enumerationswert, der von TFlagsEnum angegeben ist.
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
Typparameter
- TFlagsEnum
Zielumenumentyp.
Parameter
Gibt zurück
Der in ein TFlagsEnum-Element konvertierte NamedBitList-Wert.
Ausnahmen
Der nächste Wert verfügt nicht über das richtige Tag.
Oder
Die Längencodierung ist nach den aktuellen Codierungsregeln ungültig.
Oder
Die Inhalte sind nach den aktuellen Codierungsregeln ungültig.
Oder
Der codierte Wert ist zu groß, um in einen TFlagsEnum Wert zu passen.
TFlagsEnum ist kein Enumerationstyp.
Oder
TFlagsEnum wurde nicht mit deklariert. FlagsAttribute
Oder
expectedTag.TagClass ist Universal, aber expectedTag.TagValue ist für die -Methode nicht richtig.
Hinweise
Die bitausrichtung, die von dieser Methode durchgeführt wird, besteht darin, das wichtigste Bit im ersten Byte des Werts als das am wenigsten signifikante Bit in TFlagsEnumzu interpretieren, wobei bits im Wert bis zum geringsten signifikanten Bit des ersten Byte steigen und mit dem wichtigsten Bit des zweiten Bytes fortfahren usw. In diesem Schema können die folgende ASN.1-Typdeklaration und die C#-Enumeration zusammen verwendet werden:
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ährend das hier gezeigte Beispiel die KeyUsage NamedBitList aus RFC 3280 (4.2.1.3) verwendet, verwendet die Beispielenume Werte, die sich von X509KeyUsageFlagsunterscheiden.