void AddCodeElements() { ICompilation compilation = project.GetCompilationUnit(); var projectContent = compilation.MainAssembly.UnresolvedAssembly as IProjectContent; if (projectContent != null) { IUnresolvedFile file = projectContent.GetFile(context.FilteredFileName); if (file != null) { var csharpFile = file as CSharpUnresolvedFile; if (csharpFile != null) { AddUsings(csharpFile.RootUsingScope, compilation); } var resolveContext = new SimpleTypeResolveContext(compilation.MainAssembly); AddTypes( file.TopLevelTypeDefinitions .Select(td => td.Resolve(resolveContext) as ITypeDefinition) .Where(td => td != null) .Distinct()); } } }
ITypeDefinition GetTypeDefinition(string name) { ICompilation compilation = project.GetCompilationUnit(); var typeName = new TopLevelTypeName(name); foreach (IAssembly assembly in compilation.Assemblies) { ITypeDefinition typeDefinition = assembly.GetTypeDefinition(typeName); if (typeDefinition != null) { return(typeDefinition); } } return(null); }
ICompilationUnit GetCompilationUnit() { return(project.GetCompilationUnit(projectItem.FileName)); }