Aracılığıyla paylaş


AsnReader.ReadNamedBitListValue Yöntem

Tanım

Aşırı Yüklemeler

ReadNamedBitListValue(Type, Nullable<Asn1Tag>)

Belirtilen etikete sahip bir NamedBitList olarak sonraki değeri okur ve tarafından belirtilen flagsEnumType[FlagsAttribute] sabit listesine dönüştürür.

ReadNamedBitListValue<TFlagsEnum>(Nullable<Asn1Tag>)

Belirtilen etikete sahip bir NamedBitList olarak sonraki değeri okur ve tarafından belirtilen TFlagsEnum[FlagsAttribute] sabit listesine dönüştürür.

ReadNamedBitListValue(Type, Nullable<Asn1Tag>)

Kaynak:
AsnDecoder.NamedBitList.cs
Kaynak:
AsnDecoder.NamedBitList.cs
Kaynak:
AsnDecoder.NamedBitList.cs

Belirtilen etikete sahip bir NamedBitList olarak sonraki değeri okur ve tarafından belirtilen flagsEnumType[FlagsAttribute] sabit listesine dönüştürür.

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

Parametreler

flagsEnumType
Type

Hedef türü temsil eden tür nesnesi.

expectedTag
Nullable<Asn1Tag>

Okumadan önce denetlenecek etiket.

Döndürülenler

NamedBitList değeri değerine flagsEnumTypedönüştürüldü.

Özel durumlar

Sonraki değer doğru etikete sahip değil.

-veya-

Uzunluk kodlaması geçerli kodlama kuralları altında geçerli değil.

-veya-

İçerikler geçerli kodlama kuralları altında geçerli değil.

-veya-

Kodlanmış değer bir değere sığamayacak flagsEnumType kadar büyük.

flagsEnumType sabit listesi türü değildir.

-veya-

flagsEnumType ile bildirilmemiş FlagsAttribute

-veya-

expectedTagöğesini seçin.TagClass , Universalancak expectedTagTagValue yöntemi için doğru değildir.

flagsEnumTypenull

Şunlara uygulanır

ReadNamedBitListValue<TFlagsEnum>(Nullable<Asn1Tag>)

Kaynak:
AsnDecoder.NamedBitList.cs
Kaynak:
AsnDecoder.NamedBitList.cs
Kaynak:
AsnDecoder.NamedBitList.cs

Belirtilen etikete sahip bir NamedBitList olarak sonraki değeri okur ve tarafından belirtilen TFlagsEnum[FlagsAttribute] sabit listesine dönüştürür.

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

Tür Parametreleri

TFlagsEnum

Hedef sabit listesi türü.

Parametreler

expectedTag
Nullable<Asn1Tag>

Okumadan önce denetlenecek etiket.

Döndürülenler

TFlagsEnum

NamedBitList değeri değerine TFlagsEnumdönüştürüldü.

Özel durumlar

Sonraki değer doğru etikete sahip değil.

-veya-

Uzunluk kodlaması geçerli kodlama kuralları altında geçerli değil.

-veya-

İçerikler geçerli kodlama kuralları altında geçerli değil.

-veya-

Kodlanmış değer bir değere sığamayacak TFlagsEnum kadar büyük.

TFlagsEnum sabit listesi türü değildir.

-veya-

TFlagsEnum ile bildirilmemiş FlagsAttribute

-veya-

expectedTagöğesini seçin.TagClass , Universalancak expectedTagTagValue yöntemi için doğru değildir.

Açıklamalar

Bu yöntem tarafından gerçekleştirilen bit hizalaması, değerin ilk baytının en önemli bitini içinde en az önemli bit TFlagsEnumolarak yorumlamaktır. Bitler, ilk baytın en az önemli bitine kadar değerde artarak ikinci baytın en önemli bitiyle devam eder ve bu şekilde devam eder. Bu düzen altında, aşağıdaki ASN.1 tür bildirimi ve C# numaralandırması birlikte kullanılabilir:

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

Buradaki örnekte RFC 3280 'den (4.2.1.3) KeyUsage NamedBitList kullanılırken, örnek sabit listesi'nden X509KeyUsageFlagsfarklı değerler kullanır.

Şunlara uygulanır