/// <summary> /// Get inheritance chain for given type. /// </summary> /// <param name="type">Type which inheritance chain is desired.</param> /// <param name="references">References where chain will be searched</param> /// <returns>Founded inheritance chain if available, <c>null</c> otherwise.</returns> internal InheritanceChain GetChain(TypeDescriptor type, ReferencedAssemblies references) { if (type == null) { return(null); } return(getChain(type.TypeName, references)); }
/// <summary> /// Get inheritance chain for given type. /// </summary> /// <param name="typeName">name of type which inheritance chain is required.</param> /// <param name="references">References where chain will be searched</param> /// <returns>Created inheritance chain.</returns> private InheritanceChain getChain(string typeName, ReferencedAssemblies references) { var typePath = new PathInfo(typeName); var assemblies = references == null ? _assemblies.Providers : resolveKeys(references); foreach (var assembly in assemblies) { var inheritanceChain = assembly.GetInheritanceChain(typePath); if (inheritanceChain != null) { return(inheritanceChain); } } return(null); }
/// <summary> /// Creates method searcher, which can search in referenced assemblies. /// </summary> /// <param name="references">The references.</param> /// <returns>Created method searcher.</returns> internal MethodSearcher CreateSearcher(ReferencedAssemblies references) { return(new MethodSearcher(resolveKeys(references))); }