ValueAsnReader.ReadNamedBitListValue Metod

Definition

Överlagringar

Name Description
ReadNamedBitListValue(Type, Nullable<Asn1Tag>)

Läser nästa värde som en NamedBitList med en angiven tagg och konverterar det till [FlagsAttribute]-uppräkningen som anges av flagsEnumType.

ReadNamedBitListValue<TFlagsEnum>(Nullable<Asn1Tag>)

Läser nästa värde som en NamedBitList med en angiven tagg och konverterar det till [FlagsAttribute]-uppräkningen som anges av TFlagsEnum.

ReadNamedBitListValue(Type, Nullable<Asn1Tag>)

Källa:
AsnDecoder.NamedBitList.cs

Läser nästa värde som en NamedBitList med en angiven tagg och konverterar det till [FlagsAttribute]-uppräkningen som anges av 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

Parametrar

flagsEnumType
Type

Skriv objekt som representerar måltypen.

expectedTag
Nullable<Asn1Tag>

Taggen som ska sökas efter innan du läser.

Returer

Värdet NamedBitList konverterades till en flagsEnumType.

Undantag

Nästa värde har inte rätt tagg.

-eller-

Längdkodningen är inte giltig enligt de aktuella kodningsreglerna.

-eller-

Innehållet är inte giltigt enligt de aktuella kodningsreglerna.

-eller-

Det kodade värdet är för stort för att passa in i ett flagsEnumType värde.

flagsEnumType är inte en uppräkningstyp.

 -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 är null

Se även

Gäller för

ReadNamedBitListValue<TFlagsEnum>(Nullable<Asn1Tag>)

Källa:
AsnDecoder.NamedBitList.cs

Läser nästa värde som en NamedBitList med en angiven tagg och konverterar det till [FlagsAttribute]-uppräkningen som anges av 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

Typparametrar

TFlagsEnum

Måluppräkningstypen.

Parametrar

expectedTag
Nullable<Asn1Tag>

Taggen som ska sökas efter innan du läser.

Returer

TFlagsEnum

Värdet NamedBitList konverterades till en TFlagsEnum.

Undantag

Nästa värde har inte rätt tagg.

-eller-

Längdkodningen är inte giltig enligt de aktuella kodningsreglerna.

-eller-

Innehållet är inte giltigt enligt de aktuella kodningsreglerna.

-eller-

Det kodade värdet är för stort för att passa in i ett TFlagsEnum värde.

TFlagsEnum är inte en uppräkningstyp.

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

Kommentarer

Bitjusteringen som utförs med den här metoden är att tolka den viktigaste biten i den första byteen av värdet som den minst signifikanta biten i TFlagsEnum, med bitar som ökar i värde tills den minst betydande biten av den första byte, fortsätter med den mest betydande biten av den andra byte och så vidare. I det här schemat kan följande ASN.1-typdeklaration och C#-uppräkning användas tillsammans:

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),
}

Medan exemplet här använder KeyUsage NamedBitList från RFC 3280 (4.2.1.3), använder exempeluppräkningen värden som skiljer sig från System.Security.Cryptography.X509Certificates.X509KeyUsageFlags.

Gäller för