示例#1
0
        /// <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;
            }
        }
示例#2
0
 /// <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);
 }