private static void GetAttributeParentNameAndKind(MetadataReader metadataReader, Handle token, out string name, out SymbolKind kind) { switch (token.HandleType) { case HandleType.Assembly: name = null; kind = SymbolKind.Assembly; return; case HandleType.Type: name = metadataReader.GetString(metadataReader.GetTypeDefinition((TypeHandle)token).Name); kind = SymbolKind.NamedType; return; case HandleType.Method: name = metadataReader.GetString(metadataReader.GetMethod((MethodHandle)token).Name); kind = SymbolKind.Method; return; default: throw TestExceptionUtilities.UnexpectedValue(token.HandleType); } }
private static MethodHandle GetTokenForMethod(MetadataReader metadataReader, string methodName) { Assert.NotNull(methodName); Assert.NotEmpty(methodName); foreach (var methodDef in metadataReader.MethodDefinitions) { string name = metadataReader.GetString(metadataReader.GetMethod(methodDef).Name); if (methodName.Equals(name)) { return methodDef; } } AssertEx.Fail("Unable to find method:" + methodName); return default(MethodHandle); }
private static string GetQualifiedMethodName(MetadataReader metadataReader, MethodHandle methodHandle) { var method = metadataReader.GetMethod(methodHandle); var containingTypeHandle = metadataReader.GetDeclaringType(methodHandle); string fullTypeName = GetFullTypeName(metadataReader, containingTypeHandle); string methodName = metadataReader.GetString(method.Name); return fullTypeName != null ? fullTypeName + "." + methodName : methodName; }