コード例 #1
0
ファイル: Program.cs プロジェクト: oryol/ProjectJsonWorkspace
    private void Do(string path)
    {
        // This is so meta!
        var workspace = new ProjectJsonWorkspace(path);
        var thisDocument = workspace.CurrentSolution.GetDocumentIdsWithFilePath(Path.Combine(path, "Program.cs")).First();
        var project = workspace.CurrentSolution.GetProject(thisDocument.ProjectId);

        var program = project.GetCompilationAsync().Result.Assembly.GetTypeByMetadataName("Program");
        Console.WriteLine(program.GetDocumentationCommentXml());
    }
コード例 #2
0
ファイル: Program.cs プロジェクト: Noxum/CompiledHandlebars
 private static void CompileProject(CompilerOptions options)
 {
     Project project;
       Workspace workspace;
       var handlebarsFiles = new List<string>();
       if (options.JSONProject)
       {
     workspace = new ProjectJsonWorkspace(options.ProjectFile);
     project = workspace.CurrentSolution.Projects.First();
     handlebarsFiles.AddRange(ScrapeDirectoryForHandlebarsFiles(new DirectoryInfo(Path.GetDirectoryName(project.FilePath)), options));
       } else
       {//Old project files. Accessible via MSBuildWorkspace
     var properties = new Dictionary<string, string>() {
     { "AdditionalFileItemNames", "none" }};
     workspace = MSBuildWorkspace.Create(properties);
     project = (workspace as MSBuildWorkspace).OpenProjectAsync(options.ProjectFile).Result;
     handlebarsFiles.AddRange(project.AdditionalDocuments.Where(x => Path.GetExtension(x.FilePath).Equals(".hbs")).Select(x => x.FilePath));
       }
       CompileHandlebarsFiles(project, workspace, handlebarsFiles, options);
 }