/// <summary> /// Tries to get a type out of an unknow member resolve result. (In case of fully qualified names) /// </summary> /// <returns>The assemblies the type may be defined (if any).</returns> /// <param name="resolveResult">The resolve result.</param> /// <param name="typeParameterCount">Type parameter count.</param> /// <param name="isInsideAttributeType">If set to <c>true</c> this resolve result may be inside an attribute.</param> public IEnumerable<AssemblyLookup> GetLookups(UnknownMemberResolveResult resolveResult, string fullMemberName, int typeParameterCount, bool isInsideAttributeType) { string name = isInsideAttributeType ? resolveResult.MemberName + "Attribute" : resolveResult.MemberName; var identifier = GetIdentifier (name, typeParameterCount); foreach (var lookup in GetLookup (identifier, typeLookupTable, headerSize + assemblyListTable.Length * 4)) { if (fullMemberName.StartsWith (lookup.Namespace, StringComparison.Ordinal)) yield return lookup; } }
/// <summary> /// This method tries to get a matching extension method. /// </summary> /// <returns>The extension method lookups.</returns> /// <param name="resolveResult">The resolve result.</param> public IEnumerable<AssemblyLookup> GetExtensionMethodLookups(UnknownMemberResolveResult resolveResult) { return GetLookup (resolveResult.MemberName, extLookupTable, headerSize + assemblyListTable.Length * 4 + typeLookupTable.Length * 8); }