ValueAsnReader.ReadNamedBitListValue Metod
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
Ö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 |
| 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 |
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.
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.
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>)
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
Returer
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.