public static ParseType ( MetadataHeader header, string name ) : |
||
header | MetadataHeader | |
name | string | |
return |
public static TypeSignature ParseType(MetadataHeader header, string name)
{
int position = 0;
var defaultScope = header == null ? null : header.GetStream<TableStream>().GetTable<ModuleDefinition>()[0];
var type = ReadTypeSignature(defaultScope, name, ref position);
if (position >= name.Length)
return type;
position++;
SkipSpaces(name, ref position);
var elementType = ((TypeReference)type.GetElementType());
while (elementType.DeclaringType != null)
elementType = (TypeReference)elementType.DeclaringType;
if (position >= name.Length)
return type;
elementType.ResolutionScope = ReadAssemblyReference(name, ref position);
return type;
}
/// <summary> /// Translates a fully qualified name of a type to a type signature. /// </summary> /// <param name="image">The image the signature resides in.</param> /// <param name="assemblyQualifiedName">The fully qualified name.</param> /// <returns>The type signature.</returns> public static TypeSignature FromAssemblyQualifiedName(MetadataImage image, string assemblyQualifiedName) { return(TypeNameParser.ParseType(image, assemblyQualifiedName)); }