AsnDecoder.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(ReadOnlySpan<Byte>, AsnEncodingRules, Type, Int32, Nullable<Asn1Tag>) |
Liest eine NamedBitList aus |
ReadNamedBitListValue<TFlagsEnum>(ReadOnlySpan<Byte>, AsnEncodingRules, Int32, Nullable<Asn1Tag>) |
Liest eine NamedBitList aus |
ReadNamedBitListValue(ReadOnlySpan<Byte>, AsnEncodingRules, Type, Int32, Nullable<Asn1Tag>)
- Quelle:
- AsnDecoder.NamedBitList.cs
- Quelle:
- AsnDecoder.NamedBitList.cs
- Quelle:
- AsnDecoder.NamedBitList.cs
Liest eine NamedBitList aus source
mit einem angegebenen Tag gemäß den angegebenen Codierungsregeln und konvertiert diesen in die durch flagsEnumType
angegebene [FlagsAttribute]-Enumeration.
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
Parameter
- source
- ReadOnlySpan<Byte>
Der Puffer, der codierte Daten enthält.
- ruleSet
- AsnEncodingRules
Die Codierungseinschränkungen, die beim Interpretieren der Daten verwendet werden sollen.
- flagsEnumType
- Type
Typobjekt, das den Zieltyp darstellt.
- bytesConsumed
- Int32
Die Rückgabe dieser Methode ist die Gesamtzahl der Bytes für den codierten Wert. Dieser Parameter wird nicht initialisiert behandelt.
Das Tag, das vor dem Lesen überprüft werden soll, oder null
für das Standardtag (Universell 3).
Gibt zurück
Der in ein flagsEnumType
-Element konvertierte NamedBitList-Wert.
Ausnahmen
ruleSet
ist nicht definiert.
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>(ReadOnlySpan<Byte>, AsnEncodingRules, Int32, Nullable<Asn1Tag>)
- Quelle:
- AsnDecoder.NamedBitList.cs
- Quelle:
- AsnDecoder.NamedBitList.cs
- Quelle:
- AsnDecoder.NamedBitList.cs
Liest eine NamedBitList aus source
mit einem angegebenen Tag gemäß den angegebenen Codierungsregeln und konvertiert diesen in die durch TFlagsEnum
angegebene [FlagsAttribute]-Enumeration.
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
Typparameter
- TFlagsEnum
Zielumenumentyp.
Parameter
- source
- ReadOnlySpan<Byte>
Der Puffer, der codierte Daten enthält.
- ruleSet
- AsnEncodingRules
Die Codierungseinschränkungen, die beim Interpretieren der Daten verwendet werden sollen.
- bytesConsumed
- Int32
Die Rückgabe dieser Methode ist die Gesamtzahl der Bytes für den codierten Wert. Dieser Parameter wird nicht initialisiert behandelt.
Das Tag, das vor dem Lesen überprüft werden soll, oder null
für das Standardtag (Universell 3).
Gibt zurück
Der in ein TFlagsEnum
-Element konvertierte NamedBitList-Wert.
Ausnahmen
ruleSet
ist nicht definiert.
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 TFlagsEnum
zu 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.