AsnDecoder.TryReadEncodedValue 方法

定义

尝试使用指定编码规则查找 source 缓冲区开头编码值的内容范围。

public:
 static bool TryReadEncodedValue(ReadOnlySpan<System::Byte> source, System::Formats::Asn1::AsnEncodingRules ruleSet, [Runtime::InteropServices::Out] System::Formats::Asn1::Asn1Tag % tag, [Runtime::InteropServices::Out] int % contentOffset, [Runtime::InteropServices::Out] int % contentLength, [Runtime::InteropServices::Out] int % bytesConsumed);
public static bool TryReadEncodedValue (ReadOnlySpan<byte> source, System.Formats.Asn1.AsnEncodingRules ruleSet, out System.Formats.Asn1.Asn1Tag tag, out int contentOffset, out int contentLength, out int bytesConsumed);
static member TryReadEncodedValue : ReadOnlySpan<byte> * System.Formats.Asn1.AsnEncodingRules * Asn1Tag * int * int * int -> bool
Public Shared Function TryReadEncodedValue (source As ReadOnlySpan(Of Byte), ruleSet As AsnEncodingRules, ByRef tag As Asn1Tag, ByRef contentOffset As Integer, ByRef contentLength As Integer, ByRef bytesConsumed As Integer) As Boolean

参数

source
ReadOnlySpan<Byte>

包含编码数据的缓冲区。

ruleSet
AsnEncodingRules

解释数据时要使用的编码约束。

tag
Asn1Tag

此方法返回时,为标识内容的标记。 该参数未经初始化即被处理。

contentOffset
Int32

此方法返回时,为内容有效负载相对于 source 起始位置的偏移量。 该参数未经初始化即被处理。

contentLength
Int32

此方法返回时,为内容有效负载中的字节数(可能为 0)。 该参数未经初始化即被处理。

bytesConsumed
Int32

此方法返回时,为编码值的字节总数。 该参数未经初始化即被处理。

返回

如果 source 表示指定编码规则的有效结构编码,则为 true;否则为 false

例外

未定义 ruleSet

注解

此方法很少对内容执行验证。 如果编码值使用一定长度,则根本不检查内容。 如果编码值使用无限长,则仅在必要时检查内容以确定相关内容结尾标记的位置。

当编码值使用无限期长度时,bytesConsumed该值将大于 和 的总和contentOffsetcontentLength,以考虑内容结束标记。

适用于