ValueAsnReader.ReadNamedBitListValue Método
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
Sobrecargas
| Name | Description |
|---|---|
| ReadNamedBitListValue(Type, Nullable<Asn1Tag>) |
Lê o valor seguinte como uma NamedBitList com uma etiqueta especificada, convertendo-a para o [FlagsAttribute] enum especificado por |
| ReadNamedBitListValue<TFlagsEnum>(Nullable<Asn1Tag>) |
Lê o valor seguinte como uma NamedBitList com uma etiqueta especificada, convertendo-a para o [FlagsAttribute] enum especificado por |
ReadNamedBitListValue(Type, Nullable<Asn1Tag>)
- Origem:
- AsnDecoder.NamedBitList.cs
Lê o valor seguinte como uma NamedBitList com uma etiqueta especificada, convertendo-a para o [FlagsAttribute] enum especificado por 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
Parâmetros
- flagsEnumType
- Type
Objeto tipo que representa o tipo de destino.
Devoluções
O valor NamedBitList convertido para um flagsEnumType.
Exceções
O valor seguinte não tem a etiqueta correta.
-ou-
A codificação de comprimento não é válida segundo as regras de codificação atuais.
-ou-
O conteúdo não é válido segundo as regras de codificação atuais.
-ou-
O valor codificado é demasiado grande para caber num flagsEnumType valor.
flagsEnumType não é um tipo de enum.
-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 é null
Ver também
Aplica-se a
ReadNamedBitListValue<TFlagsEnum>(Nullable<Asn1Tag>)
- Origem:
- AsnDecoder.NamedBitList.cs
Lê o valor seguinte como uma NamedBitList com uma etiqueta especificada, convertendo-a para o [FlagsAttribute] enum especificado por 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
Parâmetros de Tipo Genérico
- TFlagsEnum
O tipo enum de destino.
Parâmetros
Devoluções
O valor NamedBitList convertido para um TFlagsEnum.
Exceções
O valor seguinte não tem a etiqueta correta.
-ou-
A codificação de comprimento não é válida segundo as regras de codificação atuais.
-ou-
O conteúdo não é válido segundo as regras de codificação atuais.
-ou-
O valor codificado é demasiado grande para caber num TFlagsEnum valor.
TFlagsEnum não é um tipo de enum.
-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.
Observações
O alinhamento de bits realizado por este método consiste em interpretar o bit mais significativo no primeiro byte do valor como o bit menos significativo em TFlagsEnum, com os bits a aumentarem de valor até ao bit menos significativo do primeiro byte, prosseguindo com o bit mais significativo do segundo byte, e assim sucessivamente. Neste esquema, a seguinte declaração de tipo ASN.1 e a enumeração em C# podem ser usadas em conjunto:
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),
}
Embora o exemplo aqui use a KeyUsage NamedBitList do RFC 3280 (4.2.1.3), o exemplo de enum usa valores diferentes de System.Security.Cryptography.X509Certificates.X509KeyUsageFlags.