Freigeben über


ValueAsnReader.ReadNamedBitListValue Methode

Definition

Überlädt

Name Beschreibung
ReadNamedBitListValue(Type, Nullable<Asn1Tag>)

Liest den nächsten Wert als NamedBitList mit einem angegebenen Tag und konvertiert ihn in dieFlagsAttribute durch flagsEnumType[] angegebene Enumeration.

ReadNamedBitListValue<TFlagsEnum>(Nullable<Asn1Tag>)

Liest den nächsten Wert als NamedBitList mit einem angegebenen Tag und konvertiert ihn in dieFlagsAttribute durch TFlagsEnum[] angegebene Enumeration.

ReadNamedBitListValue(Type, Nullable<Asn1Tag>)

Quelle:
AsnDecoder.NamedBitList.cs

Liest den nächsten Wert als NamedBitList mit einem angegebenen Tag und konvertiert ihn in dieFlagsAttribute durch flagsEnumType[] angegebene Enumeration.

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

Type-Objekt, das den Zieltyp darstellt.

expectedTag
Nullable<Asn1Tag>

Das Tag, nach dem vor dem Lesen gesucht werden soll.

Gibt zurück

Der NamedBitList-Wert, der in ein flagsEnumType.

Ausnahmen

Der nächste Wert verfügt nicht über das richtige Tag.

- oder -

Die Längencodierung ist unter den aktuellen Codierungsregeln ungültig.

- oder -

Der Inhalt ist unter den aktuellen Codierungsregeln ungültig.

- oder -

Der codierte Wert ist zu groß, um in einen flagsEnumType Wert zu passen.

flagsEnumType ist kein Enumerationstyp.

 -or-

 <code data-dev-comment-type="paramref">flagsEnumType</code> was not declared with <xref data-throw-if-not-resolved="true" uid="System.FlagsAttribute"></xref>

 -or-

 <code data-dev-comment-type="paramref">expectedTag</code>.<xref data-throw-if-not-resolved="true" uid="System.Formats.Asn1.Asn1Tag.TagClass"></xref> is
 <xref data-throw-if-not-resolved="true" uid="System.Formats.Asn1.TagClass.Universal"></xref>, but
 <code data-dev-comment-type="paramref">expectedTag</code>.<xref data-throw-if-not-resolved="true" uid="System.Formats.Asn1.Asn1Tag.TagValue"></xref> is not correct for
 the method.

flagsEnumType ist null

Weitere Informationen

Gilt für:

ReadNamedBitListValue<TFlagsEnum>(Nullable<Asn1Tag>)

Quelle:
AsnDecoder.NamedBitList.cs

Liest den nächsten Wert als NamedBitList mit einem angegebenen Tag und konvertiert ihn in dieFlagsAttribute durch TFlagsEnum[] angegebene Enumeration.

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

Der Enumerationstyp des Ziels.

Parameter

expectedTag
Nullable<Asn1Tag>

Das Tag, nach dem vor dem Lesen gesucht werden soll.

Gibt zurück

TFlagsEnum

Der NamedBitList-Wert, der in ein TFlagsEnum.

Ausnahmen

Der nächste Wert verfügt nicht über das richtige Tag.

- oder -

Die Längencodierung ist unter den aktuellen Codierungsregeln ungültig.

- oder -

Der Inhalt ist unter den aktuellen Codierungsregeln ungültig.

- oder -

Der codierte Wert ist zu groß, um in einen TFlagsEnum Wert zu passen.

TFlagsEnum ist kein Enumerationstyp.

 -or-

 <code data-dev-comment-type="typeparamref">TFlagsEnum</code> was not declared with <xref data-throw-if-not-resolved="true" uid="System.FlagsAttribute"></xref>

 -or-

 <code data-dev-comment-type="paramref">expectedTag</code>.<xref data-throw-if-not-resolved="true" uid="System.Formats.Asn1.Asn1Tag.TagClass"></xref> is
 <xref data-throw-if-not-resolved="true" uid="System.Formats.Asn1.TagClass.Universal"></xref>, but
 <code data-dev-comment-type="paramref">expectedTag</code>.<xref data-throw-if-not-resolved="true" uid="System.Formats.Asn1.Asn1Tag.TagValue"></xref> is not correct for
 the method.

Hinweise

Die von dieser Methode durchgeführte Bitausrichtung besteht darin, das wichtigste Bit im ersten Byte des Werts als das am wenigsten signifikante Bit in TFlagsEnum, wobei Bits bis zum kleinsten signifikanten Bit des ersten Bytes, mit dem wichtigsten Bit des zweiten Bytes usw. fortfahren. Unter diesem Schema kann die folgende ASN.1-Typdeklaration und C#-Aufzählung 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 im beispiel hier die KeyUsage NamedBitList aus RFC 3280 (4.2.1.3) verwendet wird, verwendet die Enumeration werte, die sich von System.Security.Cryptography.X509Certificates.X509KeyUsageFlags unterscheiden.

Gilt für: