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());
                }
            }
        }
예제 #2
0
        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);
        }
예제 #3
0
 ICompilationUnit GetCompilationUnit()
 {
     return(project.GetCompilationUnit(projectItem.FileName));
 }