本文整理汇总了C#中System.Reflection.Metadata.BlobReader.ReadSignatureTypeCode方法的典型用法代码示例。如果您正苦于以下问题:C# BlobReader.ReadSignatureTypeCode方法的具体用法?C# BlobReader.ReadSignatureTypeCode怎么用?C# BlobReader.ReadSignatureTypeCode使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类System.Reflection.Metadata.BlobReader
的用法示例。
在下文中一共展示了BlobReader.ReadSignatureTypeCode方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: DecodeParameter
// cf. MetadataDecoder<>.DecodeParameterOrThrow.
private ParameterSignature DecodeParameter(ref BlobReader signatureReader)
{
bool isByRef = false;
while (true)
{
var typeCode = signatureReader.ReadSignatureTypeCode();
switch (typeCode)
{
case SignatureTypeCode.RequiredModifier:
case SignatureTypeCode.OptionalModifier:
// Skip modifiers.
break;
case SignatureTypeCode.ByReference:
isByRef = true;
break;
default:
var type = DecodeType(ref signatureReader, typeCode);
return new ParameterSignature(type, isByRef);
}
}
}
示例2: DecodeGenericTypeInstance
// cf. MetadataDecoder<>.DecodeGenericTypeInstanceOrThrow.
private TypeSignature DecodeGenericTypeInstance(ref BlobReader signatureReader)
{
var typeCode = signatureReader.ReadSignatureTypeCode();
var typeHandle = signatureReader.ReadTypeHandle();
var typeArguments = DecodeGenericTypeArguments(ref signatureReader);
int typeArgumentOffset = 0;
var type = DecodeType(typeHandle, typeArguments, ref typeArgumentOffset);
if (typeArgumentOffset != typeArguments.Length)
{
// Generic type reference names must include arity
// to avoid loading referenced assemblies.
throw UnhandledMetadata();
}
return type;
}
示例3: DecodeModifiersAndType
// Ignore modifiers and decode type.
private TypeSignature DecodeModifiersAndType(ref BlobReader signatureReader)
{
while (true)
{
var typeCode = signatureReader.ReadSignatureTypeCode();
switch (typeCode)
{
case SignatureTypeCode.RequiredModifier:
case SignatureTypeCode.OptionalModifier:
// Skip modifiers.
break;
default:
return DecodeType(ref signatureReader, typeCode);
}
}
}