|
|
|
@ -104,12 +104,18 @@ namespace ICSharpCode.SharpDevelop.Dom.ClassBrowser
@@ -104,12 +104,18 @@ namespace ICSharpCode.SharpDevelop.Dom.ClassBrowser
|
|
|
|
|
// Look at referenced assemblies
|
|
|
|
|
if ((assemblyModel.References != null) && (assemblyParserService != null)) { |
|
|
|
|
foreach (var referencedAssemblyName in assemblyModel.References.AssemblyNames) { |
|
|
|
|
DefaultAssemblySearcher searcher = new DefaultAssemblySearcher(assemblyModel.Location); |
|
|
|
|
CombinedAssemblySearcher searcher = new CombinedAssemblySearcher(); |
|
|
|
|
if ((assemblyModel.Context != null) && (assemblyModel.Context.Project != null)) { |
|
|
|
|
searcher.AddSearcher(new ProjectAssemblyReferenceSearcher(assemblyModel.Context.Project)); |
|
|
|
|
} |
|
|
|
|
searcher.AddSearcher(new DefaultAssemblySearcher(assemblyModel.Location)); |
|
|
|
|
var resolvedFile = searcher.FindAssembly(referencedAssemblyName.AssemblyName); |
|
|
|
|
var referenceAssemblyModel = assemblyParserService.GetAssemblyModel(resolvedFile); |
|
|
|
|
resolveTypeDefModel = referenceAssemblyModel.TopLevelTypeDefinitions[baseTypeDefinition.FullTypeName]; |
|
|
|
|
if (resolveTypeDefModel != null) { |
|
|
|
|
return resolveTypeDefModel; |
|
|
|
|
if (resolvedFile != null) { |
|
|
|
|
var referenceAssemblyModel = assemblyParserService.GetAssemblyModel(resolvedFile); |
|
|
|
|
resolveTypeDefModel = referenceAssemblyModel.TopLevelTypeDefinitions[baseTypeDefinition.FullTypeName]; |
|
|
|
|
if (resolveTypeDefModel != null) { |
|
|
|
|
return resolveTypeDefModel; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|