次の方法で共有


AsnDecoder.ReadNamedBitListValue メソッド

定義

オーバーロード

ReadNamedBitListValue(ReadOnlySpan<Byte>, AsnEncodingRules, Type, Int32, Nullable<Asn1Tag>)

指定したエンコード規則に基づいて、指定したタグを持つ source から NamedBitList を読み取り、flagsEnumType によって指定された [FlagsAttribute] 列挙型に変換します。

ReadNamedBitListValue<TFlagsEnum>(ReadOnlySpan<Byte>, AsnEncodingRules, Int32, Nullable<Asn1Tag>)

指定したエンコード規則に基づいて、指定したタグを持つ source から NamedBitList を読み取り、TFlagsEnum によって指定された [FlagsAttribute] 列挙型に変換します。

ReadNamedBitListValue(ReadOnlySpan<Byte>, AsnEncodingRules, Type, Int32, Nullable<Asn1Tag>)

ソース:
AsnDecoder.NamedBitList.cs
ソース:
AsnDecoder.NamedBitList.cs
ソース:
AsnDecoder.NamedBitList.cs

指定したエンコード規則に基づいて、指定したタグを持つ source から NamedBitList を読み取り、flagsEnumType によって指定された [FlagsAttribute] 列挙型に変換します。

public static Enum ReadNamedBitListValue (ReadOnlySpan<byte> source, System.Formats.Asn1.AsnEncodingRules ruleSet, Type flagsEnumType, out int bytesConsumed, System.Formats.Asn1.Asn1Tag? expectedTag = default);
static member ReadNamedBitListValue : ReadOnlySpan<byte> * System.Formats.Asn1.AsnEncodingRules * Type * int * Nullable<System.Formats.Asn1.Asn1Tag> -> Enum
Public Shared Function ReadNamedBitListValue (source As ReadOnlySpan(Of Byte), ruleSet As AsnEncodingRules, flagsEnumType As Type, ByRef bytesConsumed As Integer, Optional expectedTag As Nullable(Of Asn1Tag) = Nothing) As Enum

パラメーター

source
ReadOnlySpan<Byte>

エンコードされたデータを含むバッファー。

ruleSet
AsnEncodingRules

データを解釈するときに使用するエンコード制約。

flagsEnumType
Type

ターゲットの型を表す型オブジェクト。

bytesConsumed
Int32

このメソッドが返されるときに、エンコードされた値の合計バイト数。 このパラメーターは初期化前として処理されます。

expectedTag
Nullable<Asn1Tag>

読み取る前にチェックするタグ、または既定のタグ (Universal 3) の場合は null

戻り値

flagsEnumType に変換された NamedBitList 値。

例外

ruleSet が定義されていません。

次の値に正しいタグがありません。

または

長さのエンコードは、現在のエンコード規則では無効です。

または

コンテンツは、現在のエンコード規則では無効です。

または

エンコードされた値が大きすぎて値に flagsEnumType 収まりません。

flagsEnumType は列挙型ではありません。

または

flagsEnumType が で宣言されていません FlagsAttribute

または

expectedTagTagClassUniversalですがexpectedTagTagValue、 が メソッドに対して正しくありません。

flagsEnumTypenull です

適用対象

ReadNamedBitListValue<TFlagsEnum>(ReadOnlySpan<Byte>, AsnEncodingRules, Int32, Nullable<Asn1Tag>)

ソース:
AsnDecoder.NamedBitList.cs
ソース:
AsnDecoder.NamedBitList.cs
ソース:
AsnDecoder.NamedBitList.cs

指定したエンコード規則に基づいて、指定したタグを持つ source から NamedBitList を読み取り、TFlagsEnum によって指定された [FlagsAttribute] 列挙型に変換します。

public static TFlagsEnum ReadNamedBitListValue<TFlagsEnum> (ReadOnlySpan<byte> source, System.Formats.Asn1.AsnEncodingRules ruleSet, out int bytesConsumed, System.Formats.Asn1.Asn1Tag? expectedTag = default) where TFlagsEnum : Enum;
static member ReadNamedBitListValue : ReadOnlySpan<byte> * System.Formats.Asn1.AsnEncodingRules * int * Nullable<System.Formats.Asn1.Asn1Tag> -> 'FlagsEnum (requires 'FlagsEnum :> Enum)
Public Shared Function ReadNamedBitListValue(Of TFlagsEnum As Enum) (source As ReadOnlySpan(Of Byte), ruleSet As AsnEncodingRules, ByRef bytesConsumed As Integer, Optional expectedTag As Nullable(Of Asn1Tag) = Nothing) As TFlagsEnum

型パラメーター

TFlagsEnum

変換先の列挙型。

パラメーター

source
ReadOnlySpan<Byte>

エンコードされたデータを含むバッファー。

ruleSet
AsnEncodingRules

データを解釈するときに使用するエンコード制約。

bytesConsumed
Int32

このメソッドが返されるときに、エンコードされた値の合計バイト数。 このパラメーターは初期化前として処理されます。

expectedTag
Nullable<Asn1Tag>

読み取る前にチェックするタグ、または既定のタグ (Universal 3) の場合は null

戻り値

TFlagsEnum

TFlagsEnum に変換された NamedBitList 値。

例外

ruleSet が定義されていません。

次の値に正しいタグがありません。

または

長さのエンコードは、現在のエンコード規則では無効です。

または

コンテンツは、現在のエンコード規則では無効です。

または

エンコードされた値が大きすぎて値に TFlagsEnum 収まりません。

TFlagsEnum は列挙型ではありません。

または

TFlagsEnum が で宣言されていません FlagsAttribute

または

expectedTagTagClassUniversalですがexpectedTagTagValue、 が メソッドに対して正しくありません。

注釈

このメソッドによって実行されるビットアラインメントは、値の最初のバイトの最上位ビットを の最下位ビット TFlagsEnumとして解釈し、ビットは最初のバイトの最下位ビットまで値が増加し、2 番目のバイトの最上位ビットに進むなどです。 このスキームでは、次の ASN.1 型宣言と C# 列挙を一緒に使用できます。

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

この例では RFC 3280 (4.2.1.3) の KeyUsage NamedBitList を使用していますが、列挙型の例では とは X509KeyUsageFlags異なる値を使用しています。

適用対象