@@ -59,74 +59,15 @@ void UpdateBaseTypes()
5959 if ( currentTypeDef != null ) {
6060 foreach ( var baseType in currentTypeDef . DirectBaseTypes ) {
6161 ITypeDefinition baseTypeDef = baseType . GetDefinition ( ) ;
62- if ( ( baseTypeDef != null ) ) {
63- ITypeDefinitionModel baseTypeModel = GetTypeDefinitionModel ( currentTypeDef , baseTypeDef ) ;
62+ if ( baseTypeDef != null ) {
63+ ITypeDefinitionModel baseTypeModel = baseTypeDef . GetModel ( ) ;
6464 if ( baseTypeModel != null )
6565 baseTypes . Add ( baseTypeModel ) ;
6666 }
6767 }
6868 }
6969 }
7070
71- ITypeDefinitionModel GetTypeDefinitionModel ( ITypeDefinition mainTypeDefinition , ITypeDefinition baseTypeDefinition )
72- {
73- ITypeDefinitionModel resolveTypeDefModel = null ;
74- var assemblyFileName = mainTypeDefinition . ParentAssembly . GetRuntimeAssemblyLocation ( ) ;
75- IAssemblyModel assemblyModel = null ;
76-
77- try {
78- // Try to get AssemblyModel from project list
79- IProjectService projectService = SD . GetRequiredService < IProjectService > ( ) ;
80- if ( projectService . CurrentSolution != null ) {
81- var projectOfAssembly = projectService . CurrentSolution . Projects . FirstOrDefault ( p => p . AssemblyModel . Location == assemblyFileName ) ;
82- if ( projectOfAssembly != null ) {
83- // We automatically have an AssemblyModel from project
84- assemblyModel = projectOfAssembly . AssemblyModel ;
85- }
86- }
87-
88- var assemblyParserService = SD . GetService < IAssemblyParserService > ( ) ;
89- if ( assemblyModel == null ) {
90- if ( assemblyParserService != null ) {
91- if ( assemblyFileName != null ) {
92- assemblyModel = assemblyParserService . GetAssemblyModel ( assemblyFileName ) ;
93- }
94- }
95- }
96-
97- if ( assemblyModel != null ) {
98- // Nothing in projects, load from assembly file
99- resolveTypeDefModel = assemblyModel . TopLevelTypeDefinitions [ baseTypeDefinition . FullTypeName ] ;
100- if ( resolveTypeDefModel != null ) {
101- return resolveTypeDefModel ;
102- }
103-
104- // Look at referenced assemblies
105- if ( ( assemblyModel . References != null ) && ( assemblyParserService != null ) ) {
106- foreach ( var referencedAssemblyName in assemblyModel . References . AssemblyNames ) {
107- CombinedAssemblySearcher searcher = new CombinedAssemblySearcher ( ) ;
108- if ( ( assemblyModel . Context != null ) && ( assemblyModel . Context . Project != null ) ) {
109- searcher . AddSearcher ( new ProjectAssemblyReferenceSearcher ( assemblyModel . Context . Project ) ) ;
110- }
111- searcher . AddSearcher ( new DefaultAssemblySearcher ( assemblyModel . Location ) ) ;
112- var resolvedFile = searcher . FindAssembly ( referencedAssemblyName . AssemblyName ) ;
113- if ( resolvedFile != null ) {
114- var referenceAssemblyModel = assemblyParserService . GetAssemblyModel ( resolvedFile ) ;
115- resolveTypeDefModel = referenceAssemblyModel . TopLevelTypeDefinitions [ baseTypeDefinition . FullTypeName ] ;
116- if ( resolveTypeDefModel != null ) {
117- return resolveTypeDefModel ;
118- }
119- }
120- }
121- }
122- }
123- } catch ( Exception ) {
124- // TODO Can't load the type, what to do?
125- }
126-
127- return resolveTypeDefModel ;
128- }
129-
13071 protected override System . Collections . Generic . IComparer < ICSharpCode . TreeView . SharpTreeNode > NodeComparer {
13172 get {
13273 return NodeTextComparer ;
0 commit comments