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 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.